R的新手-我认为应该有一个简单的解决方案,但是我很难做到正确。
我从问卷中得到了18个变量(每个变量都与一个问卷项目相对应)的形式想要得分。每个变量的结果为“ True”,“ Sometimes”或“ Not true”(所有字符)。我想创建一个循环,将所有18个变量的数值分别更改为2、1,和0,以便可以对问卷进行评分。
有人可以建议这样做吗?谢谢!
答案 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