我有这样的表"年龄":
Age State
23 1
26 3
29 1
41 2
51 1
Run Code Online (Sandbox Code Playgroud)
对于这样的问题,对于那些具有State = 1的人来说,采用Age的平均值是最简单的方法
如果我们只需要mean'State'为'State'为1的'Age',则将'State'值对应于'State'为1并将其获得mean
mean(df1$Age[df1$State==1])
Run Code Online (Sandbox Code Playgroud)
或者如果我们需要mean每个'州'组的'年龄',一个选项是aggregate
aggregate(Age~State, df1, FUN=mean)
Run Code Online (Sandbox Code Playgroud)
或者我们使用data.table将'data.frame'转换为'data.table'(setDT(df1))的地方,得到'Age'的'mean',按'State'分组.
library(data.table)
setDT(df1)[, list(Age=mean(Age)), State]
Run Code Online (Sandbox Code Playgroud)