如何在 R 中重新编码和评分多个变量

How to recode and score multiple variables in R

R 的新手 - 我认为应该有一个简单的解决方案,但我无法正确解决。

我有 18 个变量(每个变量对应一个问卷项目)形式的问卷结果,我想对其进行评分。每个变量的结果是 "True"、"Sometimes" 或 "Not true"(所有字符)。我想创建一个循环,将所有 18 个变量分别更改为 2、1 和 0 的数字分数,这样我就可以对问卷进行评分。

有人可以建议一种方法吗?谢谢!

您可以像这样使用 ifelse 结构:

df$Ques1_Score <- ifelse(df$Ques1 == "True", 2, ifelse(df$Ques1 == "Sometimes", 1, 0))

如果您 data.frame 被称为 d 并且包含一列 results 您可以执行以下操作

d$results <- match(d$results, c("Not true", "Sometimes", "True")) - 1

dplyr 如果 您不关心这些值的另一个解决方案(您总是可以减去 1,得到 0-1-2:

require(dyplr)

dat <- tibble(
  v1 = factor(c("a", "b", "c")),
  v2 = factor(c("a", "b","a"))
) # create some simulated data

# A tibble: 3 x 2
  v1    v2   
  <fct> <fct>
1 a     a    
2 b     b    
3 c     a   

转换数字中的每个因子(这将在不明确命名所有变量的情况下工作):

dat %>% mutate_if(is.factor, as.numeric) # trasforms factor in numeric

# A tibble: 3 x 2
     v1    v2
  <dbl> <dbl>
1     1     1
2     2     2
3     3     1