【发布时间】:2018-05-20 20:07:43
【问题描述】:
输入数据框的格式很长,并且包含一个用户的信息,分为多行。
例子
d_long <- data.frame( nameid = c("sally","sally","sally","Robert","annie","annie"), value = c("product1","ra","ent","ra","ra","product1"))
nameid value 1 sally product1 2 sally ra 3 sally ent 4 Robert ra 5 annie ra 6 annie product1
如何将其转换为这样的二进制数据帧:
d_exist <- data.frame(nameid = c("sally","Robert","annie"), product1 = c(1,0,1), ra = c(1,1,1), ent = c(1,0,0))
nameid product1 ra ent 1 sally 1 1 1 2 Robert 0 1 0 3 annie 1 1 0
【问题讨论】:
-
试试
tabletable(d_long)orreshape2:: dcast(d_long, nameid ~ value, length)orlibrary(tidyverse);d_long %>% mutate(n = 1) %>% spread(value, n, fill = 0) -
@akrun 对不起。在回答之前我没有注意到你的评论。我认为您的 cmets 足以回答这个问题。
-
@akrun 非常感谢。在添加答案之前我应该保持警惕。我必须在回答中提到你。
标签: r