使用
df <- data.frame(v1=c(1:5), v2=c(9,32,6,17,11))
我需要根据v2中的值是否大于10来添加值为1或0的新列v3,以便:
df
v1 v2 v3
1 1 9 0
2 2 32 1
3 3 6 0
4 4 17 1
5 5 11 1
有像x这样的东西吗? y:z在R?如果没有,什么是解决上述问题的好方法?谢谢!
答案 0 :(得分:7)
ifelse(..)
最接近:
R> df <- data.frame(v1=c(1:5), v2=c(9,32,6,17,11))
R> df$v3 <- ifelse(df$v2 > 10, 1, 0)
R> df
v1 v2 v3
1 1 9 0
2 2 32 1
3 3 6 0
4 4 17 1
5 5 11 1
R>
答案 1 :(得分:3)
我不知道ifelse是否更快,但这更容易阅读:
> d <- data.frame(v1=c(1:5), v2=c(9,32,6,17,11))
> d$v3 <- as.numeric(d$v2 > 10)
> d
v1 v2 v3
1 1 9 0
2 2 32 1
3 3 6 0
4 4 17 1
5 5 11 1