gpt4 book ai didi

r - R 数据框子集取决于重复变量的值

转载 作者:行者123 更新时间:2023-12-01 19:34:10 25 4
gpt4 key购买 nike

如何对以下示例数据帧进行子集化以仅返回一个最早发生的观察[即每个 ID 的分钟(年)]?

id <- c("A", "A", "C", "D", "E", "F")
year <- c(2000, 2001, 2001, 2002, 2003, 2004)
qty <- c(100, 300, 100, 200, 100, 500)
df=data.frame(year, qty, id)

在上面的示例中,“A”id 在 2000 年和 2001 年有两个观察值。在重复 id 的情况下,我希望子集数据框仅包含第一次出现(即在 2000 年)的对重复 ID 的观察。

df2 = subset(df, ???)

这就是我想要返回的内容:

df2

year qty id
2000 100 A
2001 100 C
2002 200 D
2003 100 E
2004 500 F

任何帮助将不胜感激。

最佳答案

您可以聚合最小年份 + id,然后与原始数据框合并以获得数量:

df2 <- merge(aggregate(year ~ id, df1, min), df1)

# > df2
# id year qty
# 1 A 2000 100
# 2 C 2001 100
# 3 D 2002 200
# 4 E 2003 100
# 5 F 2004 500

关于r - R 数据框子集取决于重复变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11217091/

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