我正在尝试重新编码一组使用split函数或ifelse函数无法轻松完成的数据。我该如何重新编码以下数据?
1 - > 1
2 - > 0
3 - > 0
4 - > 1
5 - > 1
7 - > 0
8 - > 1
感谢您的时间!
答案 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