0
tidyr RでSPREAD_にNSEを使用して:次のデータセットを使用して
temp <- structure(list(
GENDER = structure(c(1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L),
.Label = c("F", "M"),
class = "factor"),
EVERFSM_6 = c(0L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L),
`0001` = c(0, 11, 22, 33, 33, 55, 66, 77, 88, 0),
n = c(20L, 13L, 4L, 13L, 36L, 94L, 28L, 50L, 27L, 1L)),
.Names = c("GENDER", "EVERFSM_6", "0001", "n"),
class = c("tbl_df", "data.frame"),
row.names = c(NA, -10L))
そして私は、データを要約するために、次のspread_操作を実行しようとしている:
DiscID <- "0001"
colID <- as.name(DiscID)
cols <- c("GENDER", colID, "n")
gender_results <- temp %>%
select_(.dots=cols) %>%
group_by_(.dots=cols[1:2]) %>%
summarise(gender_n = sum(n)) %>%
spread_(paste0("`",DiscID,"`"), "gender_n") %>%
rename(type = GENDER)
しかし、それは言う:
Error: Key column '`0001`' does not exist in input.
私は変数にrを使用しているので、_バージョンのselect_、group_by_、およびspread_を使用する必要があります列名を参照してください。所望の出力は、以下のコード化されたハードを使用することにより達成可能である:
spread(`0001`, gender_n) %>%
type 0 11 22 33 55 66 77 88
(fctr) (int) (int) (int) (int) (int) (int) (int) (int)
1 F 20 13 4 36 94 28 NA NA
2 M 1 NA NA 13 NA NA 50 27
から
!しかし、今私はなぜspread_がこれを受け入れるのか混乱しますが、select_とgroup_by_は受け入れません。ありがとう! – pluke
は、このような変数の組み合わせを使用する代わりに 'cols'を代わりに' list(〜GENDER、colID、〜n) 'として渡すことができます(dplyrのNSEビネットから) –