我的数据框有几列,如下所示:
df1 <- data.frame(A = c(1,2,4), B=c(1,3,1), C=c(1,1,3))
我有两个条件来获取 A 列的平均值。
- 条件1:我想在B为1时获得A列的平均值,即只对row1和row2进行平均。
- 条件2:当A列的值大于1但小于3时,我想获得B列的平均值,即只考虑第2行。
我知道我可以使用过滤器将数据框剪切为仅包含 B 列 = 1。但是,当我希望将 B 列视为 1 和 3 之间的范围时,我不确定该怎么做。
有没有更智能的方法来获取列的平均值,而无需先将数据帧切割成较小的尺寸?
您可以在同一调用中进行子集化mean
像这样:
with(df1, mean(A[B == 1]))
with(df1, mean(B[A > 1 & A < 3]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)