首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按索引行设置在R中不起作用的行?

按索引行设置在R中不起作用的行?
EN

Stack Overflow用户
提问于 2017-07-09 02:44:05
回答 1查看 418关注 0票数 0

我已经做过几千次了,但我知道我错过了一些东西。我希望通过与另一列相匹配的列来子集数据框架。然而,标准流程似乎不起作用。我现在拥有的是:

代码语言:javascript
复制
a <- as.character(df1$col1)
b <- names(df2)
df2[(b %in% a), ]

最后一行似乎什么也没做。没有错误,但是b %in% a位肯定不会返回所有TRUE

代码语言:javascript
复制
a[1:10]
"2.5D"             "2D"               "2DFighter"        "3DPlatformer"    "3DVision"         "4PlayerLocal"     "4X"               "Abstract"        "Action"           "Action-Adventure"

b[1:10]
"appid"            "2.5D"             "2D"               "4PlayerLocal"    "6DOF"             "Action"           "Action-Adventure" "ActionRPG"       "Adventure"        "Anime" 

b[1:10] %in% a[1:10]
FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE

names(df2[(b %in% a), ])
"appid"            "2.5D"             "2D"               "4PlayerLocal"    "6DOF"             "Action"           "Action-Adventure" "ActionRPG"       "Adventure"        "Anime" 

我想要的是df2是df1中匹配列的子集。我想说,这是正确的方法,因为我甚至有两个向量,我与%in%匹配都是相同的字符格式。然而,柱状子集似乎没有做任何事情。

我在这里做了什么错事,有什么是显而易见的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-09 05:13:27

这里重要的是,当使用df[a,b]进行子设置时,a子集设置行和b子集列。

正如@Kevin在评论中提到的那样:

代码语言:javascript
复制
df2[(b %in% a), ]

正在从数据框架中删除一些行,这意味着所有列仍然存在。相反,要对列进行子集,我们需要:

代码语言:javascript
复制
df2[ ,(b %in% a) ]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44992486

复制
相关文章

相似问题

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