我想找到一种更优雅的方法将我的数据从李克特量表转换为标准化量表。Plyr 的 mapvalues 似乎有效,但并不优雅。我尝试了 purrr 但它没有像我希望的那样工作。
data$var1 <- mapvalues(data$var1,
from=c("1","2","3", "4", "5"),
to=as.integer(c("0", "25", "50", "75", "100"))
我有几个想要转换的变量,因此任何有关使用 purrr 函数执行此操作的见解都会很棒。
这是我的第一篇 stackoverflow 帖子,如果我没有遵循正确的协议,请原谅我。
-RP
由于这里有一个清晰的替换模式,我们可以从var1
25 中减去 1并乘以 25。为了更容易理解,var1
我创建了一个新列而不是替换var2
。
library(dplyr)
data <- data %>% mutate(var2 = 25 * (var1 - 1))
data
# var1 var2
#1 3 50
#2 3 50
#3 2 25
#4 2 25
#5 3 50
#6 5 100
#7 4 75
#8 1 0
#9 2 25
#10 3 50
如果没有这样清晰的模式并且plyr
已经退休,您可以使用dplyr::recode
data <- data %>%
mutate(var2 = recode(var1, `1`=0, `2`=25, `3`=50, `4`=75, `5`=100))
数据
如果您以可重现的格式提供数据,则更容易提供帮助-
set.seed(123)
data <- data.frame(var1 = sample(5, 10, replace = TRUE))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句