我有这样的表“年龄”:
Age State
23 1
26 3
29 1
41 2
51 1
对于这样的问题,对于那些具有State = 1
的人来说,最简单的方法是取平均值答案 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)