首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >dplyr:基于向量的滤波器

dplyr:基于向量的滤波器
EN

Stack Overflow用户
提问于 2021-06-03 17:59:22
回答 1查看 477关注 0票数 1

我假设错误在代码中,因此我认为这个例子就足够了。

我想根据我创建的向量过滤我的df (df2)。该向量是从另一个数据帧(df1)的列中提取信息的。

基于df1的向量:(提取df1的第三列)

代码语言:javascript
运行
复制
 vector_df1 <- df1 [, 3]

尝试在df2上应用过滤器,基于vector_df1

代码语言:javascript
运行
复制
Filter_df2 <- df2 %>%
                    
               filter(Column_df2 %in% vector_df1)

结果:0行

有人能帮我看看我做错了什么吗

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-03 18:13:48

这是数据集结构的一种情况,即使用data.frame时,如果使用[,col],则使用drop = TRUE并将其强制到vector,而对于data.tabletibble,默认情况下是drop = FALSE,从而用单列返回tibble本身。这些文档可以在?Extract中找到。安全选项是[[,它在提取列时具有与vector相同的行为。

代码语言:javascript
运行
复制
vector_df1 <- df[[3]]

根据?Extract,默认用法是

xi,j,.,drop = TRUE

它被指定为

或矩阵和数组。如果为真,则将结果强制到尽可能低的维度(参见示例)。这只适用于提取元素,而不是替换元素。有关更多详细信息,请参见下降。

tibble的文档可以在?"tbl_df-class"中找到

df,j返回一个tibble;它不会自动提取内部的列。df,j,drop = FALSE是默认的。请参阅更多的内容:subset.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67826538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档