在 R 中将连续重新编码为连续变量(无拆分函数)

Recode continuous into continuous variables (without split function) in R

我正在尝试重新编码一组使用 split 函数或 ifelse 函数无法轻松完成的数据。我将如何重新编码以下数据?

1 --> 1
2 --> 0
3 --> 0
4 --> 1
5 --> 1
7 --> 0
8 --> 1

感谢您的宝贵时间!

也许试试这个?尽管连续到连续通常意味着可以应用某种类型的函数。

x <- c(1:5, 7:8)
x
# [1] 1 2 3 4 5 7 8

x[x == 1] <- 1
x[x == 2] <- 0
x[x == 3] <- 0
x[x == 4] <- 1
x[x == 5] <- 1
x[x == 7] <- 0
x[x == 8] <- 1
x
# [1] 1 0 0 1 1 0 1

你可以试试:

library(car)
v <- c(1,2,3,4,5,6,7,8)
recode(v, "c(1,4,5,8) = 1; else = 0")

或者如@zx8754 所述,您可以使用 ifelse():

ifelse(v %in% c(1,4,5,8), 1, 0)

给出:

#[1] 1 0 0 1 1 0 0 1

另一种方法:

x <- +(x %in% c(1,4,5,8))
#[1] 1 0 0 1 1 0 1

+(..) 命名法是一种将逻辑向量强制转换为整数的方法,与 as.integer(..) 相同。