相关疑难解决方法(0)

如何使用dplyr在列中重新编码(和反向编码)变量

我在2013年最后一次使用它后再次拿起R.我已经习惯了使用dplyr,但是我遇到了一个简单任务的问题.我有一张看起来像的桌子

Participant Q1       Q2      Q3     Q4       Q5
1           agree  neutral   NA    Disagree  Agree
2           neutral agree    NA     NA       NA
Run Code Online (Sandbox Code Playgroud)

我的目标

   Participant Q1       Q2      Q3     Q4       Q5
    1           3       2       NA      1       3
    2           2       1       NA     NA       NA
Run Code Online (Sandbox Code Playgroud)

我希望能够将分类值更改为列Q1:Q5的数值,但我看到的使用dode重新编码的所有示例都适用于行而没有列.(我可能会在示例中遗漏一些内容).然后我希望能够选择Q1和Q2列并对其进行反向编码.

我试图在dplyr中学习如果可能的话

谢谢

r dplyr

4
推荐指数
2
解决办法
3764
查看次数

如何使用mutate_all并使用dplyr正确重新编码?

我一直在尝试使用recode的dplyr变体,结合mutate_all对数据集中的所有变量,但它不会产生预期的输出.我发现的其他答案没有解决这个问题(例如dplyr中的Recode和Mutate_all)

这是我尝试过的:

library(tidyverse)
library(car)

# Create sample data
df <- data_frame(a = c("Yes","Maybe","No","Yes"), b = c("No","Maybe","Yes","Yes"))

# Using dplyr::recode
df %>% mutate_all(funs(recode(., `1` = "Yes", `0` = "No", `NA` = "Maybe")))
Run Code Online (Sandbox Code Playgroud)

对价值没有影响:

# A tibble: 4 × 2
      a     b
  <chr> <chr>
1   Yes    No
2 Maybe Maybe
3    No   Yes
4   Yes   Yes
Run Code Online (Sandbox Code Playgroud)

我想要的可以用car :: Recode重现:

# Using car::Recode
df %>% mutate_all(funs(Recode(., "'Yes' = 1; 'No' = 0; 'Maybe' = NA")))
Run Code Online (Sandbox Code Playgroud)

这是期望的结果:

# A tibble: 4 × …
Run Code Online (Sandbox Code Playgroud)

r dplyr recode

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

标签 统计

dplyr ×2

r ×2

recode ×1