我有这样的数据集
movieID title year country genre directorName Rating actorName1 actorName.2
1 hello 1995 USA action john smith 6 tom hanks charlie sheen
2 MI2 1997 USA action mad max 8 tom cruize some_body
3 MI2 1997 USA thriller mad max 8 tom cruize some_body
基本上有很多行只有一个不同的用户给定类型我想要有genre1,genre2,...的列
我尝试了reshape()但它只会根据一些ID变量进行转换。如果有人有任何想法让我知道
答案 0 :(得分:1)
尝试使用dplyr和tidyr:
library(tidyr)
library(dplyr)
df %>% mutate(yesno=1) %>% spread(genre, yesno, fill=0)
这会创建一个yesno列,只为每个类型提供一个值来填充。然后我们可以使用tidyr的传播。 fill = 0表示用0而不是NA填写不在流派中的那些。
在:
genre title yesno
1 action lethal weapon 1
2 thriller shining 1
3 action taken 1
4 scifi alien 1
后:
title action scifi thriller
1 alien 0 1 0
2 lethal weapon 1 0 0
3 shining 0 0 1
4 taken 1 0 0