根据R中2列的条件填充值[重复]

问题描述 投票:0回答:1

我有一个数据框,仅当基于另外 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列中的相应值。 我只需要填写行,其中对于每个组,日期是最新日期。

有什么想法吗?

r match
1个回答
0
投票

使用

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
© www.soinside.com 2019 - 2024. All rights reserved.