在R中连续重新编码为连续变量(没有分割函数)

时间:2015-10-09 17:28:39

标签: r recode

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

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

感谢您的时间!

3 个答案:

答案 0 :(得分:4)

另一种方法:

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

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

答案 1 :(得分:2)

你可以尝试:

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

答案 2 :(得分:0)

也许试试这个?虽然连续到连续通常意味着可以应用某种类型的功能。

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