R其他列的值相等时的列平均值

时间:2015-11-05 08:21:40

标签: r average

我有这样的表“年龄”:

Age State
23    1
26    3
29    1
41    2
51    1

对于这样的问题,对于那些具有State = 1

的人来说,最简单的方法是取平均值

3 个答案:

答案 0 :(得分:5)

如果我们只需要“状态”为1的“年龄”mean,则将“状态”为1的“年龄”值进行子集化并获取mean

mean(df1$Age[df1$State==1])

或者,如果每个“州”群组需要mean个“年龄”,则一个选项为aggregate

aggregate(Age~State, df1, FUN=mean)

或者我们使用data.table我们将'data.frame'转换为'data.table'(setDT(df1)),得到'Age'的'mean',按'State'分组。

library(data.table)
setDT(df1)[, list(Age=mean(Age)), State]

答案 1 :(得分:4)

所以:

library(dplyr)

df %>% group_by(State) %>% summarise(ave = mean(Age)) %>% filter(State == 1)

答案 2 :(得分:1)

你也可以...... mean(subset(df1,State == 1)$Age)

相关问题