【发布时间】:2014-04-01 16:22:24
【问题描述】:
我正在尝试使用dplyr:
假设您有 data.frame y 并且您想根据 var1 的值创建一个新变量
y <- data.frame(var1 = rnorm(100))
y$var2 <- 0
y$var2[y$var1 > 0.5] <- 1
是否可以使用dplyr 的mutate 和filter 来做到这一点?
【问题讨论】:
我正在尝试使用dplyr:
假设您有 data.frame y 并且您想根据 var1 的值创建一个新变量
y <- data.frame(var1 = rnorm(100))
y$var2 <- 0
y$var2[y$var1 > 0.5] <- 1
是否可以使用dplyr 的mutate 和filter 来做到这一点?
【问题讨论】:
试试mutate:
> y <- data.frame(var1 = (-2):2)
> y %>% mutate(var2 = as.numeric(var1 > 0.5))
var1 var2
1 -2 0
2 -1 0
3 0 0
4 1 1
5 2 1
更新: dplyr 现在使用 %>% 代替 %.%
【讨论】:
mutate(var2 = ifelse(is.na(var1),0,ifelse(var1>0.5,1,0))),它会将 0 分配给 NA。