Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用%in%将列表传递给dplyr筛选器_R_Filter_Dplyr - Fatal编程技术网

无法使用%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中)

谢谢!工作起来很有魅力。