特定列相等时所有行的总和-R中的data.frame
我的真实列表包含大量的特定列相等时所有行的总和-R中的data.frame,r,list,dataframe,if-statement,R,List,Dataframe,If Statement,我的真实列表包含大量的数据。具有大量行和列的帧。 谢谢代码很好,只需将其放入函数并使用lappy。这里我使用了data.table,但您也可以将该dplyr代码放入函数中,并将其用作lappy的第二个参数 df var1 var2 var3 1 a 4 12.5 2 b 2 5 4 c 6 0 5 d 88 0 df2 var1 var2 var3 1 k 10 12.5 2 l 0.6 5 3 v
数据。具有大量行和列的帧。
谢谢代码很好,只需将其放入函数并使用lappy
。这里我使用了data.table,但您也可以将该dplyr代码放入函数中,并将其用作lappy
的第二个参数
df
var1 var2 var3
1 a 4 12.5
2 b 2 5
4 c 6 0
5 d 88 0
df2
var1 var2 var3
1 k 10 12.5
2 l 0.6 5
3 v 12 0
代码很好,只需将其放入函数中并使用lappy
。这里我使用了data.table,但您也可以将该dplyr代码放入函数中,并将其用作lappy
的第二个参数
df
var1 var2 var3
1 a 4 12.5
2 b 2 5
4 c 6 0
5 d 88 0
df2
var1 var2 var3
1 k 10 12.5
2 l 0.6 5
3 v 12 0
在base中,您可以使用lappy
中的aggregate
对每组进行汇总
library(data.table)
lapply(mylist, function(df) setDT(df)[, lapply(.SD, sum), var1])
或者使用rowsum
,在行名称中使用组:
lapply(list, function(x) aggregate(.~var1, x, sum))
#lapply(list, function(x) aggregate(x[,-1], as.list(x[1]), sum)) #Alternative
#[[1]]
# var1 var2 var3
#1 a 4 12.5
#2 b 2 5.0
#3 c 6 0.0
#4 d 88 0.0
#
#[[2]]
# var1 var2 var3
#1 k 10.0 12.5
#2 l 0.6 5.0
#3 v 12.0 0.0
在base中,您可以使用lappy
中的aggregate
对每组进行汇总
library(data.table)
lapply(mylist, function(df) setDT(df)[, lapply(.SD, sum), var1])
或者使用rowsum
,在行名称中使用组:
lapply(list, function(x) aggregate(.~var1, x, sum))
#lapply(list, function(x) aggregate(x[,-1], as.list(x[1]), sum)) #Alternative
#[[1]]
# var1 var2 var3
#1 a 4 12.5
#2 b 2 5.0
#3 c 6 0.0
#4 d 88 0.0
#
#[[2]]
# var1 var2 var3
#1 k 10.0 12.5
#2 l 0.6 5.0
#3 v 12.0 0.0
整洁版本:
lapply(list, function(x) rowsum(x[,-1], x[,1]))
dfTidy版本:
lapply(list, function(x) rowsum(x[,-1], x[,1]))
df使用dplyr 1.0.0
你可以使用cross()
:总结(横跨(num_range(“var”,2:3),sum),.groups=“drop_last”)
使用dplyr 1.0.0
你可以使用cross()
总结(横跨(num_range(“var”,2:3),sum),.groups=“drop_last”)