我有一个数据框,仅当基于另外 2 列的 2 个条件适用时,我才需要在其中填写列中的值。
# Generating data
df<- data.frame(date= sample(seq(as.Date('2023/10/01'), as.Date('2024/03/01'), by="day"),50),
group= sample(LETTERS[1:4],50,replace = T),
value= rnorm(50),
label=NA)
我需要在label列中填写value列中的相应值。 我只需要填写行,其中对于每个组,日期是最新日期。
有什么想法吗?
使用
dplyr
:
library(dplyr)
df %>%
group_by(group) %>%
mutate(label = max(date)) %>%
ungroup()
# A tibble: 50 × 4
date group value label
<date> <chr> <dbl> <date>
1 2023-10-20 C -0.569 2024-02-26
2 2023-11-13 C -0.135 2024-02-26
3 2024-01-29 C 1.18 2024-02-26
4 2023-12-26 B -1.52 2024-02-28
5 2023-12-09 B 0.594 2024-02-28
6 2024-02-28 B 0.333 2024-02-28
7 2023-11-09 D 1.06 2024-02-24
8 2023-10-25 C -0.304 2024-02-26
9 2024-01-27 D 0.370 2024-02-24
10 2024-01-30 B 0.267 2024-02-28
# ℹ 40 more rows
# ℹ Use `print(n = ...)` to see more rows