【发布时间】:2019-04-29 06:58:24
【问题描述】:
我有兴趣弄清楚失业人员的频率,这些人在我的数据集中也是非裔美国人/黑人。我有一个大型数据集,其中包括变量 OCC(失业人员编码为 0)和种族(AA/Black 编码为 2)。
我尝试通过 tidyverse 使用 group(by) 函数,但我认为我这样做可能不正确,因为我收到以下错误消息。
这是代码:
RACE <- group_by(cps_data, OCC, RACE)
occupation <- summarise(RACE,
count = n(),
OCC = mean(OCC, na.rm = TRUE)
)
summarise(RACE, occupation = mean(OCC, na.rm = TRUE))
我创建的职业对象给了我错误信息:
Error in summarise_impl(.data, dots) :
Column `OCC` can't be modified because it's a grouping variable
summary 函数给了我一个看起来不是很有帮助的 tibble:
# A tibble: 1,374 x 3
# Groups: OCC [?]
OCC RACE occupation
<int> <int> <dbl>
1 0 1 0
2 0 2 0
3 0 3 0
4 0 4 0
5 0 5 0
6 0 6 0
7 0 7 0
8 0 8 0
9 0 9 0
10 10 1 10
这是我的一些数据 - 我试图为你们复制以帮助你们帮助我。您会看到,上面我制作了另一个数据框,只包含 OCC 和 RACE,因为它们是目前唯一相关的因素。
dput(head(cps_data,4))
structure(list(YEAR = c(2015L, 2015L, 2015L, 2015L), DATANUM = c(1L,
1L, 1L, 1L), SERIAL = c(1029644L, 1029644L, 1029705L, 1029708L
), CBSERIAL = c(403, 403, 1944, 1964), HHWT = c(194L, 194L, 142L,
77L), STATEICP = c(14L, 14L, 14L, 14L), STATEFIP = c(42L, 42L,
42L, 42L), CITY = c(5330L, 5330L, 5330L, 5330L), GQ = c(1L, 1L,
1L, 1L), PERNUM = c(1L, 3L, 1L, 1L), PERWT = c(194L, 140L, 142L,
78L), SEX = c(2L, 1L, 2L, 1L), AGE = c(37L, 35L, 60L, 41L), RACE = c(1L,
1L, 2L, 2L), RACED = c(100L, 100L, 200L, 200L), OCC = c(800L,
6260L, 0L, 350L), IND = c(7270L, 770L, 0L, 8190L), INCWAGE = c(75000L,
25000L, 0L, 83000L)), row.names = c(NA, 4L), class = "data.frame")
我希望得到一个输出,显示失业人数,他们也被识别为非裔美国人/黑人,以便我可以比较我的数据集。
【问题讨论】:
-
您可能需要
ungroup并单独按RACE分组,即RACE %>% group_by(RACE) %>% summarise(n = n(), OCC = mean(OCC, na.rm = TRUE))