小编ole*_*c_c的帖子

R - 从多列中减去相同的值

我有一组使用李克特量表响应的调查数据,编码为 1-5(“强烈不同意”到“强烈同意”)。我试图将分数重新集中在 0 附近,-2 表示“强烈不同意”,+2 表示“强烈同意”。

一个明显的方法是将所有列减去 3,但我不知道在一行代码中从多个列中减去相同的数字,我确信有一种方法......

示例数据:

likert_data <- data.frame(id=c(1:10),
                          a=sample(x = 1:5, size = 10,replace=T),
                          b=sample(x = 1:5, size = 10,replace=T),
                          c=sample(x = 1:5, size = 10,replace=T)
                          )
Run Code Online (Sandbox Code Playgroud)

我当然可以做这样的事情......

likert_data %<>% 
  mutate(across(c(a:c), ~case_when(. == 1 ~ as.numeric(-2),
                                   . == 2 ~ as.numeric(-1),
                                   . == 3 ~ as.numeric(0),
                                   . == 4 ~ as.numeric(1),
                                   . == 5 ~ as.numeric(2))))

Run Code Online (Sandbox Code Playgroud)

...但我认为这不是很优雅。

有没有办法将列减a:c3?不一定要使用,但如果存在解决方案,dplyr我真的很感激!dplyr:)

r dplyr

3
推荐指数
1
解决办法
3092
查看次数

标签 统计

dplyr ×1

r ×1