我试图通过将多个列合并到ID上来打开高数据集。
我一直在使用传播,但目前我只是得到了传播创建的列,但仍然有与以前相同的行数。我目前有:
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)
但是,当我这样做时,它会创建列,但不会压缩行。
在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
这是你在想什么?
df %>%
mutate(Code_Type = paste0("Code_Type_", Code_Type)) %>%
spread(Code_Type, Code)
我想你只需要添加mutate步骤就可以了。