【发布时间】:2021-07-16 09:41:58
【问题描述】:
我想在 case_when 函数中的 ~ 之后放置一个条件项。
我的例子:
df:
df <- structure(list(x = c("a", "a", "a", "b", "b", "b", "c", "c",
"c", "a", "a", "a"), y = 1:12), class = "data.frame", row.names = c(NA,
-12L))
不工作的代码:
library(dplyr)
df %>%
group_by(x) %>%
mutate(y = case_when(x=="b" ~ cumsum(y),
TRUE ~ y)) %>%
mutate(y = case_when(x=="a" ~ "what I want: last value of group "b" in column y",
TRUE ~ y))
言辞:
-
group_byx - 在
y列中为组@987654328@ 计算cumsum - 取该组 (=b) 的最后一个值 (=15) 并
- 将此值(=15)放入
y列,其中组为a
想要的输出:
x y
<chr> <dbl>
1 a 15
2 a 15
3 a 15
4 b 4
5 b 9
6 b 15
7 c 7
8 c 8
9 c 9
10 a 15
11 a 15
12 a 15
非常感谢!!!
【问题讨论】:
标签: r dplyr tidyverse case-when