我有一个名为df的数据框,其中包含变量AllCustomerName和sum.of.FY.Total。第一列“AllCustomerName”包含所有客户端的列表。我有一个单独的列表,其中包含我需要信息的客户的名称。下面的代码用于遍历数据框列AllCustomerName,搜索与列表值相等的所有值,并分别为每个列表观察添加所有值。
y <- list("client 1", "client 2", "client 3")
for ( i in y){
if ( df$AllCustomerName == i ){
sum(df$Sum.of.FY.Total)
}
}
当我运行代码时,我会收到警告说“条件长度> 1且只使用第一个元素”
谢谢
答案 0 :(得分:0)
可以使用data.table
library(data.table)
setDT(df)[AllCustomerName %chin% unlist(y), .(Sum = sum(Sum.of.FY.Total)),
by = AllCustomerName]