r - 如何按 ID 对特定输出进行子集列表
问题描述
如果我说我有一份使用自助餐厅的人的名单。
Fruits ID Date
apple 1 100510
apple 2 100710
banana 2 110710
banana 1 120910
kiwi 2 120710
apple 3 100210
kiwi 3 110810
我想选择同时使用苹果和香蕉的人以及我的新数据集来包含符合此纳入标准的人并给出:
ID
1
2
(因为只有 ID 1 和 2 在数据集中同时有苹果和香蕉)
我应该在 R 中使用什么代码?
解决方案
在基础 R 中,您可以执行类似的操作
data.frame(ID = names(which(sapply(split(df$Fruits, df$ID), function(x) {
"apple" %in% x & "banana" %in% x
}))))
#> ID
#> 1 1
#> 2 2
这将为您提供同时包含“apple”和“banana”的 ID 名称
如果您想要包含这些行的数据框的子集,您可以执行以下操作:
df[df$ID %in% names(which(sapply(split(df$Fruits, df$ID), function(x) {
"apple" %in% x & "banana" %in% x
}))),]
#> Fruits ID Date
#> 1 apple 1 100510
#> 2 apple 2 100710
#> 3 banana 2 110710
#> 4 banana 1 120910
#> 5 kiwi 2 120710
推荐阅读
- css - 如何实现新的 Material Design 底部应用栏
- python - 如何快速将稀疏向量与整数矩阵相乘?
- azure-logic-apps - 是否可以在 Azure Logic App 执行之间传递参数?
- c++ - 将整数数组传递给函数时计算元素数时得到不同的结果
- ios - 在 iOS pwa 中下载文件
- c# - 从带有条件的 json 中获取值并将其转换为对象列表
- android - 我有一个文本视图,但我需要根据行的数据。前 4 行、3 行等
- php - 多上传附件联系表
- android - 使用 AlarmManager 未收到通知
- uitableview - 部分标题标签中的长文本未正确显示