【发布时间】:2020-11-05 09:35:54
【问题描述】:
我有兴趣对数据框列表中的每一行求和。也就是说,第一行需要对列表中的所有数据框求和。同样,第二个等等。 添加完成后,我想取列表中数据帧数的平均值。我用下面的代码来做(乏味)
sample_list<-list(data.frame(x=c(1:5)),data.frame(x=c(6:10)), data.frame(x=c(11:15)) ) ## sample data frame's list
sum_per_person<-matrix(nrow=nrow(sample_list[[1]]),ncol=1) ## create a matrix to store sum of each row from the list of data frames.
number_indi=nrow(sample_list[[1]]) ## number of rows are same in each data frame within the list
iterate_person=1 ## set counter
while(iterate_person<=number_indi){ ## do a while loop
sum_temp=0 ## set to zero
for(x in 1:length(sample_list)){
## iterate over the sample list
sum_temp<-sum_temp+(sample_list[[x]])[iterate_person,]
} ## iteration ends for the list
sum_per_person[iterate_person,1]<-sum_temp
iterate_person<-iterate_person+1 ## increment
} ## for loop ends
## take average
sum_per_person<-sum_per_person/length(sample_list) ## final result
有没有一种方法可以通过 lapply、apply 以简单的方式完成此任务?
【问题讨论】:
-
不确定,也许可以用 lambda 完成?