R:根据特定条件聚合数据帧

R:根据特定条件聚合数据帧,r,list,dataframe,aggregate,R,List,Dataframe,Aggregate,我有一个数据框。我想根据另一个列表聚合其中的一列 df<-data.frame(X=c("a", "b", "c", "d"), Y=c(0.5, 0.4, 0.01, 0.09)) X Y a 0.5 b 0.4 c 0.01 d 0.09 l<-c("a", "c", "d") 你知道怎么做吗 谢谢。我们可以“临时”将相关的X值更改为相同的分组变量,然后进行聚合。这里我任意选择了l[1],它也恰好是“a” aggregate(Y~X,i

我有一个数据框。我想根据另一个列表聚合其中的一列

df<-data.frame(X=c("a", "b", "c", "d"), Y=c(0.5, 0.4, 0.01, 0.09))
X     Y
a     0.5
b     0.4
c     0.01
d     0.09

l<-c("a", "c", "d")
你知道怎么做吗

谢谢。

我们可以“临时”将相关的
X
值更改为相同的分组变量,然后进行聚合。这里我任意选择了
l[1]
,它也恰好是
“a”


aggregate(Y~X,in(df,X使用
data.table的选项

library(data.table)
df1 <- copy(df)
setkey(setDT(df1), X)[l, X:='a'][, list(Y=sum(Y)), X]
#  X   Y
#1: a 0.6
#2: b 0.4
库(data.table)
df1
aggregate(Y ~ X, within(df, X <- replace(X, X %in% l, l[1])), sum)
#   X   Y
# 1 a 0.6
# 2 b 0.4
library(data.table)
df1 <- copy(df)
setkey(setDT(df1), X)[l, X:='a'][, list(Y=sum(Y)), X]
#  X   Y
#1: a 0.6
#2: b 0.4