首页 > 解决方案 > 基于R中另一个向量/列表/数据框的子集数据框

问题描述

代码 1. subset(df3, df.check$BREDS %in% df3$BREDS) 2. df3[(df.check$BREDS %in% df3$BREDS),] 3. df3 %>% filter(df.check$BREDS %in% df3$BREDS)

错误:必须使用有效的下标向量 i 子集行逻辑下标必须与索引输入的大小匹配。x 输入的大小为 27204,但下标的i大小为 8。

标签: r

解决方案


%in%返回 LHS 长度的输出。参见例如,

1:10 %in% 1:4
#[1]  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
1:4 %in% 1:10
#[1] TRUE TRUE TRUE TRUE

因此,如果您在所有尝试中反转论点,您应该得到您正在寻找的东西。

1)

subset(df3, BREDS %in% df.check$BREDS)

2)

df3[df3$BREDS %in% df.check$BREDS,]

3)

library(dplyr)
df3 %>% filter(BREDS %in% df.check$BREDS)

推荐阅读