按索引行子集在 R 中不起作用?

AI52487963

我已经这样做了数千次,但我知道我在这里遗漏了一些东西。我想通过与另一列匹配的列对我拥有的数据框进行子集化。但是,标准流程似乎不起作用。这是我所拥有的:

a <- as.character(df1$col1)
b <- names(df2)
df2[(b %in% a), ]

现在最后一行似乎没有做任何事情。没有错误,但该b %in% a位肯定不会返回所有TRUE.

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%都是相同的字符格式。然而,柱状子集似乎没有做任何事情。

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

罗斯科娃

这里重要的是,在对 using df[a,b]a子集行和b子集列进行子集化时。

这(正如@Kevin 在评论中提到的):

df2[(b %in% a), ]

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

df2[ ,(b %in% a) ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章