如何使用分裂标准对单元格求和?

How to sum cells with a splitting criterion?

我有三种不同的治疗方法,每种治疗方法都有五个样本值。我对如何将每次治疗对应的五个值求和感到困难。

真的,我正在使用一个大数据框,管理对我来说不太容易。

下面是数据框 dataexample_2 和我正在使用但结果不佳的脚本(见下文):

Treatment   Variable
A1  0.020408163
A1  0.040816327
A1  0.06122449
A1  0.081632653
A1  0.102040816
A2  0.12244898
A2  0.142857143
A2  0.163265306
A2  0.183673469
A2  0.204081633
A3  0.224489796
A3  0.244897959
A3  0.265306122
A3  0.285714286
A3  0.306122449

names(dataexample_2)
summary(dataexample_2)


Add<-sapply(split(dataexample_2, dataexample_2$Treatment), function(d)     sum(dataexample_2$Variable,na.rm = FALSE))
Table<-as.data.frame(Add)

我正在获得:

     Add
A1 2.44898
A2 2.44898
A3 2.44898

我希望获得:

     Add
A1 0.3061
A2 0.8163
A3 1.3265

任何帮助将不胜感激。提前致谢。问候。马蒂亚斯

您的代码的问题在于您引用了匿名 function(d) 中的全部数据,而不是当前数据 d

以下更正的行可以满足您的要求:

sapply(split(dataexample_2, dataexample_2$Treatment), function(d)  sum(d$Variable,na.rm = FALSE))

此外,我建议您查看 tapply,它比 sapply 更适合您要完成的任务。它可以使整个事情变得更加清晰:

tapply(dataexample_2$Variable, dataexample_2$Treatment, sum)