gpt4 book ai didi

r - 如何删除重复项但在R中保留最新数据

转载 作者:行者123 更新时间:2023-12-01 07:24:44 34 4
gpt4 key购买 nike

我有以下两个数据框:

df1 = data.frame(names=c('a','b','c','c','d'),year=c(11,12,13,14,15), Times=c(1,1,3,5,6))
df2 = data.frame(names=c('a','e','e','c','c','d'),year=c(12,12,13,15,16,16), Times=c(2,2,4,6,7,7))

我想知道如何合并上述 df 但只保留最近的时间取决于年份。它应该是这样的:
Names  Year   Times
a 12 2
b 12 2
c 16 7
d 16 7
e 13 4

最佳答案

我猜你不是想合并这些,而是​​通过堆叠来组合。您的问题是模棱两可的,因为“重复”可能发生在数据帧级别或向量级别。您的示例不会在数据帧级别显示任何重复,但会在矢量级别显示。描述问题的最好方法是你想要最后一个(或最大)Times每个组内的条目如果 names值(value)观:

> df1
names year Times
1 a 11 1
2 b 12 1
3 c 13 3
4 c 14 5
5 d 15 6
> df2
names year Times
1 a 12 2
2 e 12 2
3 e 13 4
4 c 15 6
5 c 16 7
6 d 16 7
> dfr <- rbind(df1,df2)
> dfr <-dfr[order(dfr$Times),]
> dfr[!duplicated(dfr, fromLast=TRUE) , ]
names year Times
1 a 11 1
2 b 12 1
6 a 12 2
7 e 12 2
3 c 13 3
8 e 13 4
4 c 14 5
5 d 15 6
9 c 15 6
10 c 16 7
11 d 16 7

> dfr[!duplicated(dfr$names, fromLast=TRUE) , ]
names year Times
2 b 12 1
6 a 12 2
8 e 13 4
10 c 16 7
11 d 16 7

关于r - 如何删除重复项但在R中保留最新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38446108/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com