这是对我之前措辞不佳的问题的重述。(对于那些回复它的人,我感谢您的努力,对于我的问题没有像我应该的那样清楚,我深表歉意。)我有一个大数据集,其中的一个子集可能如下所示:
a<-c(1,2,3,4,5,1)
b<-c("a","b","a","b","c","a")
c<-c("m","f","f","m","m","f")
d<-1:6
e<-data.frame(a,b,c,d)
如果我想要基于特定条件的第四列中条目的总和,我可以执行以下操作:
attach(e)
total<-sum(e[which(a==3 & b=="a"),4])
detach(e)
但是,我有一个条件“向量”(称为条件向量),其前四个元素看起来更像这样:
a==3 & b == "a"
a==2
a==1 & b=="a" & c=="m"
c=="f"
我想创建上面“总计”公式的“通用”版本,通过读取条件的 condition_vector 来生成总计的 results_vector。在此示例中,results_vector 中的前四个条目将在概念上按如下方式计算:
results_vector[1]<-sum(e[which(a==3 & b=="a"),4])
results_vector[2]<-sum(e[which(a==2),4])
results_vector[3]<-sum(e[which(a==1 & b=="a" & c=="m"),4])
results_vector[4]<-sum(e[which(c=="f"),4])
我的实际数据集有 20 多个变量。因此,condition_vector 中的每条记录都可以包含 1 到 20 多个条件(而不是本示例中使用的 1 到 3 个条件)。
除了使用 parse(eval(text= ... 方法(在相对较小的数据集上运行需要很长时间)之外,还有其他方法可以实现吗?
提前感谢您提供的任何帮助(再次,我很抱歉我没有像上次那样清楚)。
火花