如何删除 R 中列中每个唯一值的第一行

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

我有一个数据框,其中数据框按 id 排序:

id = c("4_01", "4_01", "4_01", "4_02", "4_02", "4_02", "4_02", "4_03", "4_03", "4_03", "4_03", "4_04", "4_04")
date = c("2020-01-01 12:00:00", "2020-01-01 12:02:00", "2020-01-01 12:04:30","2019-12-23 07:30:00", "2019-12-24 15:35:00","2019-12-28 08:00:00","2019-12-28 12:30:00", "2019-08-20 05:30:00", "2019-08-20 15:30:00","2019-09-28 15:30:00","2019-10-01 12:30:00", "2019-11-01 01:00:00", "2019-11-01 01:30:00")
difftime = c(-700440, 120, 150, -794070, 115230, 318570, 16200,-10922430, 43200, 3369630, 248370, 2637000,1800)
df = data.frame(id, date, difftime)

我似乎不知道如何删除每个唯一 id 的第一个实例/行并保留剩余的行。

我的结果是这样的,其中删除了数据集中第一次出现每个唯一 ID 的第一行:

id = c("4_01", "4_01", "4_02", "4_02", "4_02", "4_03", "4_03", "4_03", "4_04")
date = c("2020-01-01 12:02:00", "2020-01-01 12:04:30", "2019-12-24 15:35:00","2019-12-28 08:00:00","2019-12-28 12:30:00", "2019-08-20 15:30:00","2019-09-28 15:30:00","2019-10-01 12:30:00", "2019-11-01 01:30:00")
difftime = c(120, 150, 115230, 318570, 16200, 43200, 3369630, 248370, 1800)
df = data.frame(id, date, difftime)

在我较大的数据集中,它是按唯一 id 排序的,因此它们在数据框中分组在一起,如本例所示,但我似乎无法让它工作。我正在使用 R。有什么建议吗?

r dataframe dplyr
1个回答
0
投票

您可以使用

dplyr
slice
辅助函数。在这种情况下你可以这样做

df %>% dplyr::slice_tail(n=-1, by=id)

这将从每个 id 组中删除第一行。

© www.soinside.com 2019 - 2024. All rights reserved.