通过每个id中的唯一值重塑变量

时间:2016-04-03 21:11:18

标签: r reshape data-manipulation

您好,我一直试图将我的数据重新整理。

id story_id
1   123
1   123
1   123
1   123
2   213
2   213
2   213
3   123 
3   123
3   123

但我得到的只是:

id
1
2
3

我正在使用代码:

data=reshape(data, idvar="id", timevar="story_id", direction="wide")

所需的输出是

id  story_id.123 story_id.213
1    123          NA
2    NA           213
3    123          NA

请让我知道问题所在。

2 个答案:

答案 0 :(得分:1)

以下作品:

library(data.table) ; setDT(DF)

dcast(unique(DF), id ~ story_id, value.var = "story_id")

答案 1 :(得分:0)

以下是使用spread

的选项
library(dplyr)
library(tidyr)
df1 %>% 
  distinct %>% 
  spread(story_id, story_id) %>% 
  setNames(., c(names(.)[1], paste0("story_id", names(.)[-1])))
#    id story_id123 story_id213
#1  1         123          NA
#2  2          NA         213
#3  3         123          NA