【发布时间】:2018-02-04 12:28:59
【问题描述】:
A 有以下小标题:
structure(list(age = c("21", "17", "32", "29", "15"),
gender = structure(c(2L, 1L, 1L, 2L, 2L), .Label = c("Female", "Male"), class = "factor")),
row.names = c(NA, -5L), class = c("tbl_df", "tbl", "data.frame"), .Names = c("age", "gender"))
age gender
<chr> <fctr>
1 21 Male
2 17 Female
3 32 Female
4 29 Male
5 15 Male
我正在尝试使用tidyr::spread 来实现这一点:
Female Male
1 NA 21
2 17 NA
3 32 NA
4 NA 29
5 NA 15
我认为spread(gender, age) 会起作用,但我收到一条错误消息:
Error: Duplicate identifiers for rows (2, 3), (1, 4, 5)
【问题讨论】:
-
为什么要整理数据?
-
只用性别传播行不通?
-
@F.Privé 刚刚练习,我只是想了解它为什么不起作用
-
添加一个唯一索引,例如
df %>% mutate(i = row_number()) %>% spread(gender, age)。在这种情况下它不是很有用,但有时在更复杂的环境中。 -
@alistaire 谢谢,您能简要解释一下为什么我的解决方案不明确吗?我不明白为什么 tidyr 需要这些行号来传播。