dplyr
を使う場合。
r
1library(dplyr)
2library(tibble)
3
4df <- data.frame(
5 X = c(1, 2, 3), id = c(1, 2, 4),
6 date_amin = c("2020/4/1", "2019/7/14", "2021/12/1"),
7 date_bmin = c("2021/4/1", "2018/5/1", "2021/10/1"),
8 date_cmin = c("2019/2/8", "2018/7/19", "2022/3/8"),
9 date_dmin = c("2022/3/8", "2019/7/29", "2022/5/1"),
10 date_dmin.1 = c("2021/3/8", "2021/3/10", "2021/6/3"))
11
12df <- df %>%
13 # 名前が "date_" で始まるカラムを Date 型に変換
14 mutate(across(starts_with("date_"), ~as.Date(.))) %>%
15 # 行単位で処理
16 rowwise() %>%
17 # 最初の列(date_amin)の順位(ranking)を計算
18 mutate(rank_datea = first(dense_rank(c_across(starts_with("date_")))))
19
20df
実行結果
r
1# A tibble: 3 × 8
2# Rowwise:
3 X id date_amin date_bmin date_cmin date_dmin date_dmin.1 rank_datea
4 <dbl> <dbl> <date> <date> <date> <date> <date> <int>
51 1 1 2020-04-01 2021-04-01 2019-02-08 2022-03-08 2021-03-08 2
62 2 2 2019-07-14 2018-05-01 2018-07-19 2019-07-29 2021-03-10 3
73 3 4 2021-12-01 2021-10-01 2022-03-08 2022-05-01 2021-06-03 3
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/03 08:05
2022/10/03 08:44
2022/10/04 04:49