如何在 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
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