【发布时间】:2018-05-31 08:22:36
【问题描述】:
鉴于此数据框:
library(dplyr)
df.ex <- tibble(id = c(rep(1, 4), rep(2, 4), rep(3, 4)),
var1 = c('a','a','b','b','a','a','a','a','b','b','b','b'))
我想根据var1 中b 的存在创建一个新变量var2,该变量由id 列分组。因此,每个id 只能在输出列中包含一种类型的值。这是希望的结果:
df.ex.outcome <- tibble(id = c(rep(1, 4), rep(2, 4), rep(3, 4)),
var1 = c('a','a','b','b','a','a','a','a','b','b','b','b'),
var2 = c(rep('foo', 4), rep('bar', 4), rep('foo', 4)))
我认为使用group_by 可以解决这个问题,但它似乎不起作用,如下所示:
df.ex <- df.ex %>% group_by(id) %>% mutate(var2 = if_else(var1 %in% 'b', 'foo','bar'))
有人对如何做到这一点有任何想法吗?
【问题讨论】: