我正在尝试通过将多个列合并到一个ID来变大数据集。
我一直在使用Spread,但是目前我只获得了Spread创建的列,但行数仍然与以前一样。 我目前有:
ID Code_Type Code
1 10 4
1 9 5
2 10 6
2 9 7
我想要:
ID Code_Type_10 Code_type_9
1 4 5
2 6 7
这是我当前的代码
t <- spread(df, Code_Type, Code)
但是,当我这样做时,它会创建列,但不会压缩行。
答案 0 :(得分:1)
在MDEWITT的条目中添加一些内容
df <- data.frame("ID" = c(1,1,2,2),
"Code_Type" = c(10,9,10,9),
"Code" = c(4,5,6,7))
t <- tidyr::spread(df, Code_Type, Code)
names(t)[c(2,3)] <- paste0(rep("Code_Type_", 2), names(t)[c(2,3)])
df %>%
mutate(Code_Type = paste0("Code_Type_", Code_Type)) %>%
spread(Code_Type, Code)
> t
ID Code_Type_9 Code_Type_10
1 1 5 4
2 2 7 6
答案 1 :(得分:0)
这是您的想法吗?
df %>%
mutate(Code_Type = paste0("Code_Type_", Code_Type)) %>%
spread(Code_Type, Code)
我认为您只需添加mutate步骤即可使其工作。