r - 按 R 中的年份和列号过滤

标签 r filter dataframe subset

我对 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/

相关文章:

python - pandas IndexSlice 不接受整数列表

python - 将异构时间序列添加到 DataFrame

r - 根据 gps 坐标列表更改基于开放街道 map 的 igraph 中路径边缘的权重

r - 使用单个采样命令在数据框中创建多行

java - 如何使用JRI绘制SVM模型?

powershell - 获取广告组-过滤器 "SID -like ' *-51 2'"

r - 如何从向量中删除某些项目?

java - 如何在 Java 中只接受具有特定字符的字符串

Powershell 从一个列表中过滤出另一个列表

python - 如何在单行上打印 DataFrame