我有一个宽格式的问卷数据数据框,每列代表一个问卷项目。
数据如下所示:
df <- data.frame(Q1 = c(1, 4, 2, 3, 1, 1, 4, 4, 1, 2),
Q2 = c(NA, 3, 1, 4, NA, NA, 3, 4, 1, 2),
Q3 = c(3, 4, 1, 2, 4, NA, NA, 1, 1, 2),
Q4 = c(NA, 4, 1, 1, 1, 3, NA, 2, 2, NA))
我想使用该rowSums
函数来总结每行中不是“4”的值并排除 NA 并将结果除以非 4 和非 NA 列的数量(使用 dplyr 管道)。我不想替换底层数据框中的4s;我想保持原样。
由于我不知道如何将结果除以非 4 和非 NA 列的数量,我只尝试尝试我的问题的第一部分。我已经使用以下代码尝试了第一部分,但它不起作用:
library(dplyr)
df <- df %>%
as.data.frame() %>%
mutate(sum = rowSums(.[. != 4, ], na.rm = TRUE))
在上面的屏幕截图中,“均值”列是非 4 和非 NA 值的总和除以非 4 和非 NA 列的数量。
谢谢!