我假设错误在代码中,因此我认为这个例子就足够了。
我想根据我创建的向量过滤我的df (df2)。该向量是从另一个数据帧(df1)的列中提取信息的。
基于df1的向量:(提取df1的第三列)
vector_df1 <- df1 [, 3]尝试在df2上应用过滤器,基于vector_df1
Filter_df2 <- df2 %>%
filter(Column_df2 %in% vector_df1)结果:0行
有人能帮我看看我做错了什么吗
提前感谢
发布于 2021-06-03 18:13:48
这是数据集结构的一种情况,即使用data.frame时,如果使用[,col],则使用drop = TRUE并将其强制到vector,而对于data.table或tibble,默认情况下是drop = FALSE,从而用单列返回tibble本身。这些文档可以在?Extract中找到。安全选项是[[,它在提取列时具有与vector相同的行为。
vector_df1 <- df[[3]]根据?Extract,默认用法是
xi,j,.,drop = TRUE
它被指定为
或矩阵和数组。如果为真,则将结果强制到尽可能低的维度(参见示例)。这只适用于提取元素,而不是替换元素。有关更多详细信息,请参见下降。
tibble的文档可以在?"tbl_df-class"中找到
df,j返回一个tibble;它不会自动提取内部的列。df,j,drop = FALSE是默认的。请参阅更多的内容:subset.
https://stackoverflow.com/questions/67826538
复制相似问题