在子集上使用lapply

时间:2017-01-23 18:37:14

标签: r

我想生成一个从R中现有向量的子集派生的均值向量。

我的数据如下:

date    plant_ID    treatment   stalk_count flower_count
195     1           control     0           0
196     1           control     0           0
197     1           control     0           0
198     1           control     0           0
.........................................................
237     98          treatment   0           0
239     98          treatment   0           0
226     98          treatment   2           9 

我认为我需要使用split()通过plant_ID将数据分成子集,但不知道如何告诉lapply()获取这些子集,并将mean()函数应用于每个子集中包含的flower_count数据子集。

我的问题是: 1-这是一种有效的方法吗? 2-如何编写代码来执行此操作?

1 个答案:

答案 0 :(得分:-1)

我们不需要split,可以通过mean来自aggregate的操作,通过一个组获取'flower_count'的base R

aggregate(flower_count~plant_ID, df1, FUN = mean)

或使用dplyr

library(dplyr)
df1 %>%
   group_by(plant_ID) %>%
   summarise(flowercountMean = mean(flower_count))

如果我们想在lapply

中专门使用split
lapply(split(df1$flower_count, df1$plant_ID), mean)