r - 基于可能值的向量/列表在 tidyverse 中进行过滤
问题描述
我想根据应该标识唯一行的两列上的条件选择数据框的行。在下面的具体示例中,我想
id=1,2,3...
使用向量中指定的特定 mtry 值进行选择,即对于 id=1,我只想要第一行mtry=3
,因为id=2
我想要mtry=5
。
我尝试使用group_by
和使用filter
例如
filter(df, (mtry,id) %in% c([3,1],[5,2],[3,3]))
但这给出了一个错误
错误:意外的“,”在 .
这样做的tidyverse方法是什么?
解决方案
您可以使用内部连接来执行这种过滤器
library(dplyr)
df %>%
inner_join(tibble(mtry = c(3, 5, 3), id = c(1, 2, 3)))
例子:
set.seed(100)
df <- data.frame(mtry = sample(1:3, 100, T), id = sample(1:5, 100, T))
df %>%
inner_join(tibble(mtry = c(3, 5, 3), id = c(1, 2, 3)))
# Joining, by = c("mtry", "id")
# mtry id
# 1 3 1
# 2 3 3
# 3 3 3
# 4 3 3
# 5 3 1
# 6 3 3
# 7 3 1
# 8 3 1
# 9 3 1
# 10 3 3
# 11 3 1
# 12 3 3
# 13 3 1
推荐阅读
- java - Android - 不推荐使用“setToolbarColor(int)”和“setSecondaryToolbarColor(int)”
- ip - 在 WSL2 上通过局域网 (LAN) 与 ROS 进行通信时出现问题
- javascript - 没有在移动版网站上使用 javascript 添加 CSS 类
- linux - 在 oracle linux (libnsl.so.1) 上安装 oracle xe 数据库的问题
- algorithm - p5.js 递归冒泡排序
- python - 将熊猫数据框保存到 csv 时出现服务器错误
- html - 如何使图像行在 div 内缩放
- java - 为什么空 Java 字符串的哈希码为零?
- javascript - Python websockets(许多对等连接)
- javascript - 按字段格式化对象