使用 R,我想為縱向資料選擇相同 ID 中的最后一行。但是,當時間列中的值相同時(例如,ID 1 的值 5 和 ID 3 的值 4)對于最后一行(ID 1 為 2 行),我想在相同的 ID 中保留 2-3 行ID 3 為 3 行)。如果相同 ID 中時間列中的值不同,我只想保留最后一行(例如,ID 2 的值 7)。
我的資料框如下:
id time dx code
1 1 primary A1
1 5 primary D2
1 5 secondary B3
2 1 primary A2
2 7 primary C4
3 4 primary A1
3 4 secondary B3
3 4 tertiary D2
我想要以下結果:
id time dx code
1 5 primary D2
1 5 secondary B3
2 7 primary C4
3 4 primary A1
3 4 secondary B3
3 4 tertiary D2
當我使用以下 R 腳本時d %>% group_by(id) %>% filter(row_number() == n()),這些僅保留每個 ID 中的最后一行。任何幫助,將不勝感激!
uj5u.com熱心網友回復:
您也可以group_by dx使用slice_tail:
dat %>%
group_by(id, dx) %>%
slice_tail(n = 1)
# A tibble: 6 x 4
# Groups: id, dx [6]
id time dx code
<int> <int> <chr> <chr>
1 1 5 primary D2
2 1 5 secondary B3
3 2 7 primary C4
4 3 4 primary A1
5 3 4 secondary B3
6 3 4 tertiary D2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/440299.html
