使用dplyr创建虚拟变量

5
我将使用 dplyr 进行以下操作:
假设您有一个名为 ydata.frame,您想基于 var1 的值创建一个新变量。
y <- data.frame(var1 = rnorm(100))
y$var2 <- 0
y$var2[y$var1 > 0.5] <- 1

是否可能使用dplyrmutatefilter来实现这个功能?

1个回答

6

尝试使用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使用%>%代替%.%


1
如果 var1 有缺失值怎么办? - Raul Torres
如果var1中有NA,那么虚拟变量也将是NA。您可以使用mutate(var2 = ifelse(is.na(var1),0,ifelse(var1>0.5,1,0))),这将为NA分配0。 - hannes101

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接