r - 根据R中的匹配条件过滤
问题描述
我正在尝试执行一个命令,以仅保留 Y 列中“ID”与 X 列中相同的行。换句话说,如果 Y 列中的“ID”与列中的 ID 匹配,则保留该行X。
编辑:这是接近但不完全存在的代码。我需要的是在 Y 列中添加一个条件。因此,当列 Y = '34' 时,它应该保留 X 列中的 ID 等于 Y 列中的 ID 的行。
data %>%
filter(ID %in% X == ID %in% Y)
解决方案
您可以使用 join 或只是执行以下操作:
df <- data.frame(x = 1:13, y = c(1:5,7:14))
x y
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 7
7 7 8
8 8 9
9 9 10
10 10 11
11 11 12
12 12 13
13 13 14
rows_to_select <- which(df$x==df$y,TRUE)
df[rows_to_select,]
x y
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
推荐阅读
- sqlalchemy - 在 sqlalchemy 中加入有限制的表
- ruby-on-rails - rails 控制台开始生产错误
- apache-kafka - Kafka 2.0.0 按模式订阅多个主题时消耗缓慢
- java - 反应式编程(Reactor):为什么主线程卡住了?
- node.js - 如何使用 node.js 中的 .proto 文件解码编码的协议缓冲区数据
- .net - 如何在 Xamarin Forms iOS 项目中放入设备设置选项以授予对相机和照片库的访问权限
- django - 无法连接 Django 和我的 react 本机应用程序... [网络请求失败]
- python - 为什么 pandas 数据框在从 excel 中读取列名后会在列名中引入额外的数字?
- android - 是否可以更改某些 Room 数据库的主键值?
- angular - 将永远不会显示的逻辑放在哪里?