R tidyr 中的反向编码问题

问题描述 投票:0回答:1

这是我的代码:*

data %>%
  mutate(r_stemster_3 = recode(stemster_3,
                               `1` = 7,
                               `2` = 6, 
                               `3` = 5,
                               `4` = 4, 
                               `5` = 3,
                               `6` = 2,
                               `7` = 1))

这是错误消息:

Error in `mutate()`:
ℹ In argument: `r_stemster_3 = recode(...)`.
Caused by error in `recode()`:
! unused arguments (`1` = 7, `2` = 6, `3` = 5, `4` = 4, `5` = 3, `6` = 2, `7` = 1)
Backtrace:
 1. data %>% ...
 3. dplyr:::mutate.data.frame(...)
 4. dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
 6. dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
 7. mask$eval_all_mutate(quo)
 8. dplyr (local) eval()

Error in mutate(., r_stemster_3 = recode(stemster_3, `1` = 7, `2` = 6,  : 
  
Caused by error in `recode()`:
! unused arguments (`1` = 7, `2` = 6, `3` = 5, `4` = 4, `5` = 3, `6` = 2, `7` = 1)

我无法弄清楚我的代码出了什么问题。请帮忙修复代码!

我尝试了代码的变体,例如删除反引号或使用单/双引号代替反引号。它们都不起作用。

另外 data$stemster_3 是数字,我希望反向编码变量也是数字。

r tidyverse recode
1个回答
0
投票

R 中处理反向编码的方法有很多。以下是一些:

  1. 最简单的方法
sampledf <- data.frame(V1 = c(1, 4, 5, 6, 7),
                       V2 = c(2, 4, 4, 5, 6),
                       V3 = c(2, 7, 1, 1, 5))
8 - sampledf
  1. ‘心灵’包
sampledf <- data.frame(V1 = c(1, 4, 5, 6, 7),
                       V2 = c(2, 4, 4, 5, 6),
                       V3 = c(2, 7, 1, 1, 5))

install.packages("psych")
library(psych)
reverseitems <- c(-1, 1, 1)
reverse.code(reverseitems, sampledf, mini = 1, maxi = 7)

注意。

reverseitems <- c(-1, 1, 1)
在这里表示数据集中的
V1
。在这种情况下,只有第一列中的值将被反向编码。

© www.soinside.com 2019 - 2024. All rights reserved.