Mutate不再只替换已定义的值,它还继承了我没有定义的其他值。这是包裹里发生了什么变化,还是发生了什么?这是一个问题,因为这是我如何过滤掉Likert量表之外的值(表示"不知道"或"没有意见"(。
例如
q4的值为1-9,但就生成描述性统计而言,只有1-7与量表的分析相关。我过去常常通过编码到一个新的变量L4来解决这个问题,其中只有1-7个选项。像这样:
mydata <- mutate(mydata, L4 = recode(q4, "1" = 1,
"2" = 2,
"3" = 3,
"4" = 4,
"5" = 5,
"6" = 6,
"7" = 7))
但现在,R包含了新变量中的8和9。它将重新编码已定义的值,但也将结转未定义的值如何定义值>7作为新变量中的NA
以下是我尝试过的一些东西,由于各种原因都失败了。
mydata <- mutate(mydata, L4 = recode(q4, is.na(.x >= 7.5 )))
mydata <- mutate(mydata, L4 = na_if(.x, q4 >= 7.5))
mydata <- mutate(mydata, L4 ~replace_na(q4, (q4 >= 7.7))
across(c(q4,q7:q14v4,q19), ~replace_na(.x, mean(.x[.x<=7], na.rm=TRUE))))
mydata <- mydata %>%
mutate(L4 = recode(
q4, "1" = 1,
"2" = 2,
"3" = 3,
"4" = 4,
"5" = 5,
"6" = 6,
"7" = 7,
.default = NA_real_
))