我想生成一个从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-如何编写代码来执行此操作?
答案 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)