繁体   English   中英

在 R 中重新编码几个相似的变量

[英]Recode several similar variables in R

我正在处理一个中等大小的数据集,我有兴趣一次重新编码几个变量。

有 15 个变量被编码为具有三个水平的因子。 是=3,否=2,不适用=1。 我想将所有 15 个变量重新编码为数字。 是=1,否=0,不适用=不适用。

在更新我的软件之前,此代码有效。

my_data[, 9:23 := lapply(.SD, recode, "'YES'=1;'NO'=0;'N/A'=NA", as.factor.result= FALSE), .SDcols = 9:23] 

现在我收到一个错误“错误:参数 2 必须命名,而不是未命名”请让我知道我做错了什么/在这里遗漏了! 提前致谢!

以下工作:

library(dplyr)
library(data.table)

set.seed(10)
sampler <- function() as.character(sample(c(1:3), 20, TRUE))
my_data <- data_frame(
    id = 1:20,
    a = sampler(),
    b = sampler(),
    c = sampler()
)

dt <- data.table(copy(my_data))

recoder <- function(x) {
    x <- as.integer(x) - 2
    x[x < 0] <- NA
    x
}

## data.table approach
cols <- colnames(dt)[-1]
dt[ ,(cols) := lapply(.SD, recoder), .SDcols = cols][]
dt

## dplyr approach
my_data  %>%
    mutate_at(vars(a:c), recoder)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM