r - 在多列中查找/分配平均值
问题描述
我试图给我研究的参与者一个包含 20 个问题的子量表的平均值。我首先使用以下代码将字符串响应(例如“从不(零次)”、“很少(一次或两次”等)转换为 1 到 5 个数字输出:
dataset.clean1$Q11_22 <- revalue(dataset.clean1$Q11_22 , c("Never (zero occasions)" = "1" , "Rarely (one or two occasions)" = "2", "Multiple times (three or more occasions)" = "3", "Regularly (at least once every 1-3 months)" = "4", "Weekly (at least once a week)" = "5"))
我为每个问题做了 20 次(我知道这可能是最不优雅的方法,但这是我目前所知道的全部)。
现在我试图让每个参与者在 Q11_22 到 Q32_43 的平均值,并让 R 跳过任何空白/空行。我尝试了以下方法(并非所有 20 列都包括在内,因此我可以快速测试它):
ave.exposure <- dataset.clean1$ave.exposure <- mean(dataset.clean1$Q11_22, dataset.clean1$Q12_23, dataset.clean1$Q13_24, na.rm=TRUE)
我收到以下错误:
警告消息:在 mean.default(dataset.clean1$Q11_22, dataset.clean1$Q12_23, dataset.clean1$Q13_24, :argument is not numeric or logical: 返回 NA
现在我对两件事感到困惑:
" "
我是否不需要在步骤 1中放入我试图替换我的字符串的数值(例如。
dataset.clean1$Q11_22 <- revalue(dataset.clean1$Q11_22 , c("Never (zero occasions)" = 1
代替:
dataset.clean1$Q11_22 <- revalue(dataset.clean1$Q11_22 , c("Never (zero occasions)" = "1"`) ?
- 我如何(以一种易于理解的方式,无论多么乏味)找到所有这些列中每个参与者的平均值?
解决方案
所以有两个步骤:
将所有因子列转换为数字(链接)
对数字列求平均值(Q11_22 到 Q32_43)
# Step 1. I assume that your columns are all together library(tidyverse) dataset.clean1 <- dataset.clean1 %>% mutate_at(vars(Q11_22:Q32_43), function(x) as.numeric(levels(x))[x]) # Step 2. Averaging over the columns # I also assume that you have other columns in the dataset # which you do not want to delete start_col <- which(names(dataset.clean1),"Q11_22") end_col <- which(names(dataset.clean1),"Q32_43") # Specifying the vector of columns you want to row-average over indices = c(start_col:end_col) dataset.clean1 <- dataset.clean1 %>% mutate(average_of_20qn = apply(.[,indices], MARGIN=1, FUN=mean))
推荐阅读
- r - 面板数据中的周期性回归系数 r
- r - 如何在R中的同一个图上绘制所有数据集?
- java - 将 Java 7 升级到... 8 ?10 ? 11?
- java - 即使客户端死了,Postgres 也不会停止连接
- angular - 角度测试:覆盖以使用模板而不是 templateUrl
- java - Picasso 不使用 Dagger 2 加载图像
- ios - 如何将核心数据文件存储在 Private 文件夹中
- python - PyOpenGL OBJ 加载器未正确加载
- pip - 在 conda env .yml 文件中指定 .whl 文件的 url
- javascript - 我可以从渲染器的着色器访问不预乘颜色吗