我有一个类似于下面的数据框,
Name | ID | SET | COUNT |
------ | ------ |------ | ------ |
Value | 44000001005 | 0 | 24 |
Value | 10000000019659 | 0 | 29 |
Value | 10000000019659 | 1 | 5 |
我需要的结果是,
Name | ID | 0 | 1 |
------ | ------ |------ | ------ |
Value | 44000001005 | 24 | 0 |
Value | 10000000019659 | 29 | 5 |
可以这样做还是我必须重新处理数据集? 我对R来说比较新,所以我可能错过了一些非常明显的逻辑,但如果有人能指导我,我会很感激。 谢谢。
答案 0 :(得分:1)
如果要将格式从长格式更改为宽格式,可以使用tidyr软件包中的spread函数。还有其他套餐和可能性,但这是我最喜欢的。
如果您是R新手,请注意必须先使用install.packages(" tidyr")安装软件包。
Name <- c("Value","Value","Value")
ID <- c(6546465445,5464564,5464564)
SET <- c(0,0,1)
COUNT <- c(24,29,5)
df <- cbind.data.frame(Name,ID,SET,COUNT,stringsAsFactors=FALSE)
library(tidyr)
spread(data=df,key=SET,value = COUNT,fill=0) -> df_wide
请参阅文档?spread以获取有关该功能的详细信息。