我对R很陌生,我有一个数据帧,其中包含四年的数据,我正在尝试创建平均值。我遇到的问题是最后一列是一个布尔的 True/False 列,我想基本上对该列中的值进行"投票"并获得多数(因为在投票被拆分的情况下有 4 年的数据,例如 2 个真和 2 个假我想默认为 true(。
df = new,ID 是 ctfips,所以我想对 4 年中的每个 ctfips 进行 MinorityTract 的投票。(我的数据中没有缺失值(
ctfips year avgpm avg_income ... MinorityTract
1 10001040100 2011 9.158084 70055 ... FALSE
2 10001040100 2012 8.883191 74211 ... FALSE
3 10001040100 2013 8.712092 71141 ... FALSE
4 10001040100 2014 8.974976 61270 ... TRUE
5 10001040201 2011 9.178633 54770 ... TRUE
6 10001040201 2012 8.877811 49288 ... TRUE
我试过了
new %>% group_by(ctfips) %>% sum(new$MinorityTract)
我理解为什么这不起作用,但我无法找到解决这个问题的正确方法。
任何协助将不胜感激。
尝试使用summarise
作为管道中的最终步骤:
library(dplyr)
new %>%
group_by(ctfips) %>%
summarise(vote = sum(MinorityTract))
实际上,对布尔列求和并没有错,这应该已经给出了正确的总和。
我们可以使用base R
中的aggregate
aggregate(MinorityTract ~ ctfips, new, sum)