我有这个数据框
library(tidyverse)
df <- tribble(
~a, ~b, ~c
, 1, 1, 1
, 1, 0, 2
, 1, 0, 3
, 2, 0, 1
, 2, 1, 2
, 2, 1, 3
)
Run Code Online (Sandbox Code Playgroud)
我想添加一列dcontains 按满足条件a的第一个值分组,就像这样......cb == 1
tribble(
~a, ~b, ~c, ~d
, 1, 1, 1, 1
, 1, 0, 2, 1
, 1, 0, 3, 1
, 2, 0, 1, 2
, 2, 1, 2, 2
, 2, 1, 3, 2
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?(最好使用dplyr)
解决dplyr方案使用first:
df %>%
group_by(a) %>%
mutate(d = first(c[b==1])) %>%
ungroup()
Run Code Online (Sandbox Code Playgroud)