【发布时间】:2019-04-24 05:41:23
【问题描述】:
我有以下数据:
df <- data.frame(a=c(0,0,0,1,1,1),
b=c(1,2,3,1,2,3),
c=c("a","b","c","x","y","z"),
stringsAsFactors = FALSE)
df
#> a b c
#> 1 0 1 a
#> 2 0 2 b
#> 3 0 3 c
#> 4 1 1 x
#> 5 1 2 y
#> 6 1 3 z
我想创建第 4 列“d”,它从“c”返回值,其中“a”= 0 且 b=b,如下所示:
#> a b c d
#> 1 0 1 a a
#> 2 0 2 b b
#> 3 0 3 c c
#> 4 1 1 x a
#> 5 1 2 y b
#> 6 1 3 z c
我试过了:
df %>% mutate(d = c[a==0 & b==b])
但这不起作用。
如何使用 dplyr 创建列“d”?
【问题讨论】:
-
b == b是错字吗? -
b = b将始终为TRUE,因此如果是这种情况,您可以取消该条件。您也说过b = b & a = 0,但在您的示例中,您仍然为d列提供值,其中a != 0。你能进一步解释一下吗? -
所以对于第 4 行,我想从 a==0 和 b==1 ("a") 的 "c" 返回值。对于第 5 行,我想从“c”返回值,其中 a==0 和 b==2(“b”)。对于第 6 行,我想从 a==0 和 b==3 ("c") 的 "c" 返回值。