在R中组合多个具有相同字段的行 [英] combine multiple rows with same field in R
本文介绍了在R中组合多个具有相同字段的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据集如下
V1 < - c(5,5,5,45,45,77 )
V2 < - c(low,low,medium,low,low,high)
V3 < ,10,3,1)
df< - cbind.data.frame(V1,V3,V2)
v1 v2 v3
5 10 low
5 3 low
5 6 medium
45 10 low
45 3 low
77 1 high
我想要的是
v1低中高
5 13 6 0
45 13 0 0
77 0 0 1
/熔化,但没有成功。
解决方案
使用 rehape2
评论:
library(reshape2)
dcast(df,V1〜V2,value.var =V3 ,fun = sum,fill = 0)
输出:
V1高低中
1 5 0 13 6
2 45 0 13 0
3 77 1 0 0
如果我们想保留列的顺序:
dcast(df,V1〜factor(V2,levels = unique(V2)),value.var =V3,sum)
pre>
输出:
V1低中高
1 5 13 6 0
2 45 13 0 0
3 77 0 0 1
I have a dataset as following
V1 <- c(5,5,5,45,45,77) V2 <- c("low", "low", "medium", "low", "low", "high") V3 <- c(10,3,6,10,3,1) df <- cbind.data.frame(V1,V3,V2) v1 v2 v3 5 10 low 5 3 low 5 6 medium 45 10 low 45 3 low 77 1 high
I want it to be
v1 low medium high 5 13 6 0 45 13 0 0 77 0 0 1
I have tried with cast/melt with little success.
解决方案Using
rehape2
as Frank answered in the comments:library(reshape2) dcast(df, V1 ~ V2, value.var = "V3", fun = sum, fill = 0)
Output:
V1 high low medium 1 5 0 13 6 2 45 0 13 0 3 77 1 0 0
If we'd like to keep the column order:
dcast(df, V1 ~ factor(V2, levels = unique(V2)), value.var = "V3", sum)
Output:
V1 low medium high 1 5 13 6 0 2 45 13 0 0 3 77 0 0 1
这篇关于在R中组合多个具有相同字段的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文