我想要一种更简单的方法来执行此操作
MEAN1 = mean(CIS2017$USHRWK[CIS2017$AGE == 1 | CIS2017$ALFST == 1], na.rm = TRUE)
MEAN2 = mean(CIS2017$USHRWK[CIS2017$AGE == 2 | CIS2017$ALFST == 1], na.rm = TRUE)
MEAN3 = mean(CIS2017$USHRWK[CIS2017$AGE == 3 | CIS2017$ALFST == 1], na.rm = TRUE)
MEAN4 = mean(CIS2017$USHRWK[CIS2017$AGE == 4 | CIS2017$ALFST == 1], na.rm = TRUE)
MEAN5 = mean(CIS2017$USHRWK[CIS2017$AGE == 5 | CIS2017$ALFST == 1], na.rm = TRUE)
MEAN6 = mean(CIS2017$USHRWK[CIS2017$AGE == 6 | CIS2017$ALFST == 1], na.rm = TRUE)
MEAN7 = mean(CIS2017$USHRWK[CIS2017$AGE == 7 | CIS2017$ALFST == 1], na.rm = TRUE)
MEAN8 = mean(CIS2017$USHRWK[CIS2017$AGE == 8 | CIS2017$ALFST == 1], na.rm = TRUE)
MEAN9 = mean(CIS2017$USHRWK[CIS2017$AGE == 9 | CIS2017$ALFST == 1], na.rm = TRUE)
执行以下操作似乎不起作用
AGE_GROUPS = seq(1, 16, 1)
MEAN = mean(CIS2017$USHRWK[CIS2017$AGE == AGE_GROUPS | CIS2017$ALFSTN == 1], na.rm = TRUE)
也许这就是你所追求的
list2env(setNames(
lapply(AGE_GROUPS,
function(k) mean(CIS2017$USHRWK[CIS2017$AGE == k | CIS2017$ALFSTN == 1], na.rm = TRUE)),
paste("MEAN",AGE_GROUPS)),envir = .GlobalEnv)
或
v <- setNames(
sapply(AGE_GROUPS,
function(k) mean(CIS2017$USHRWK[CIS2017$AGE == k | CIS2017$ALFSTN == 1], na.rm = TRUE)),
paste("MEAN",AGE_GROUPS))