无法使用%in%将列表传递给dplyr筛选器
我无法使用%中的无法使用%in%将列表传递给dplyr筛选器,r,filter,dplyr,R,Filter,Dplyr,我无法使用%中的%将列表传递给dplyr的filter()函数,我不知道它为什么不起作用 我重新创建了以下问题: 我有两个数据集,x和y x是一组源ID(O\u ID)和目标ID(D\u ID)。 x中的单个O\u ID可以与多个D\u ID关联 y是D\u id的一组系数 我想获取与特定O\u ID关联的所有D\u ID,并获取链接到该D\u ID的系数表。在下面的示例中,这意味着我想返回y集,其中只包含gt和st的行 示例代码 library(tidyverse) # setup samp
%将列表传递给dplyr的filter()
函数,我不知道它为什么不起作用
我重新创建了以下问题:
我有两个数据集,x
和y
x
是一组源ID(O\u ID
)和目标ID(D\u ID
)。
x
中的单个O\u ID
可以与多个D\u ID
关联
y
是D\u id
的一组系数
我想获取与特定O\u ID
关联的所有D\u ID
,并获取链接到该D\u ID的系数表。在下面的示例中,这意味着我想返回y集,其中只包含gt
和st
的行
示例代码
library(tidyverse)
# setup sample x dataframe
x <- data.frame("O_ID" = c("A1","A1","A2","B1","B1","B2"),
"D_ID" = c("gt","st","hy","kl","st","nu"))
# setup sample y dataframe
y <- data.frame("ID" = c("gt","st","hy"),
"coef_1" = c(2.6,1.8,6.7),
"coef_2" = c(5.6,2.1,3.6))
# get D_ID's associated with O_ID == "A1"
x_A1 <- x %>%
filter(O_ID == "A1") %>%
select(D_ID) %>%
as.list()
# FAILED STEP:
# get table of coefficients for D_IDs
y_A1 <- y %>%
filter(ID %in% x_A1)
库(tidyverse)
#设置示例x数据帧
x您需要pull
而不是as.list()
,因为您想在向量上而不是列表上进行过滤:
# get D_ID's associated with O_ID == "A1"
x_A1 <- x %>%
filter(O_ID == "A1") %>%
select(D_ID) %>%
pull()
# get table of coefficients for D_IDs
y_A1 <- y %>%
filter(ID %in% x_A1)
#获取与O_ID==“A1”关联的D_ID
x_A1%
过滤器(O_ID==“A1”)%>%
选择(D_ID)%>%
拉
#获取D_id的系数表
y_A1%
过滤器(ID%在%x_A1中)
谢谢!工作起来很有魅力。