我对 R 比较陌生,我正在尝试按年份和特定列号过滤数据框。这是我的数据集的玩具示例:
Year UniqueID Bench.St SiteEUI
2011 1 Yes 450
2011 2 No 300
2011 3 No NA
2011 4 NA 350
2012 1 No 400
2012 2 Yes 200
2013 1 Yes 500
2013 2 No 100
2013 3 Yes 475
我正在尝试提取从 2011 年到 2013 年通过 UniqueID 排序的具有重复信息的行。使用上面的示例,2011 年有 4 个 UniqueIDs (1,2,3,4),2012 年有 2 个 UniqueIDs(1,2),2013 年有 3 个 UniqueIDs(1,2,3)。由于三年中出现了 UniqueIDs 1 和 2,我想提取这些年的 UniqueID 行。因此,上面的数据集减少为:
Year UniqueID Bench.St SiteEUI
2011 1 Yes 450
2011 2 No 300
2012 1 No 400
2012 2 Yes 200
2013 1 Yes 500
2013 2 No 100
我相信 dplyr 或其他一些简单的函数可以做到这一点,但我不确定如何去做。谢谢!
最佳答案
我认为您要问的是如何提取所有年份的数据中都存在的一组观察单位。这是一种使用 base R 的方法,用于名为 dataSet 的 data.frame:
# get a table of the frequency counts of each ID
idCount <- table(dataSet$uniqueIDs)
# keep the IDs (converted back to integers) that have the most counts
keepIDs <- as.integer(names(idCount))[idCount == max(idCount)]
# save the new data set that includes those IDs
newDataSet <- dataSet[dataSet$uniqueIDs %in% keepIDs,]
关于r - 按 R 中的年份和列号过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36477604/