从数据框中提取具有多个平均值的新向量

时间:2018-12-11 20:18:02

标签: r dataframe vector mean

我有一个包含多列的大型数据框。 我的两个专栏看起来像这样:

day_of_year <- c(123,312,23,123,322,1,23,321,124,192, ...)

group <- c(1,1,1,1,3,3,3,2,2,2, ...)

我想为每个分离的组创建一个平均值为“ day_of_year”的新向量。意味着我的输出向量应包含与“组”中的不同组一样多的(平均值)值。请注意,某些组比其他组具有更多的价值!

我希望你能帮我这个忙!

2 个答案:

答案 0 :(得分:0)

tapply就是这种情况

day_of_year <- c(123,312,23,123,322,1,23,321,124,192)
group <- c(1,1,1,1,3,3,3,2,2,2)

tapply(day_of_year, group, mean)
#       1        2        3 
#145.2500 212.3333 115.3333 

答案 1 :(得分:0)

如果您可以发布所需的最终结果,那将非常有帮助,但是,根据我的理解,如果您要为每个组寻找平均值,则可以使用以下方法。 (安装dplyr软件包)

install.packages('dplyr')
library('dplyr')

New.Data.Frame <- Your.Data.Frame >%>
                   group_by(,group)>%>
                    summarise(,Mean_Day_of_Year= mean(day_of_year ) )