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

时间:2018-08-21 13:48:15

标签: r recode

R的新手-我认为应该有一个简单的解决方案,但是我很难做到正确。

我从问卷中得到了18个变量(每个变量都与一个问卷项目相对应)的形式想要得分。每个变量的结果为“ True”,“ Sometimes”或“ Not true”(所有字符)。我想创建一个循环,将所有18个变量的数值分别更改为2、1,和0,以便可以对问卷进行评分。

有人可以建议这样做吗?谢谢!

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

如果data.frame名为d并且包含列results,则可以执行以下操作

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

答案 2 :(得分:0)

使用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