【问题标题】:r: subsetting with square brackets not workingr:方括号的子集不起作用
【发布时间】:2017-06-06 14:25:17
【问题描述】:

我制作了名为 x 的数据框:

a  b
1  2
3  NA
3  32
21 7
12 8

当我跑步时

y <- x["a">2,]

返回的对象 y 与 x 相同。如果我跑

y <- x["a" == 1,]

y 是一个空框架。

我确保 x 数据框的名称没有空格(我自己用 names() 命名它们)并且 a 和是数字。

PS:如果我尝试

 y <- x["a">2]

y 也以与 x 相同的形式返回。

【问题讨论】:

    标签: r subset


    【解决方案1】:

    您在引用 data.frame x 的列时出错。

    "a"&gt;2 表示字符 a 大于两个,而不是变量 adata.frame x。您需要添加 x$ax["a"] 以引用您的 data.frame 列。

    试试

    y &lt;- x[x$a &gt;2 ,]

    y &lt;- x[x["a"] &gt;2 ,]

    甚至更清楚

    ix <- x["a"] > 2
    
    y <- x[ix,]
    

    【讨论】:

      【解决方案2】:

      一个简单的替代方法是使用data.table

      library(data.table)
      
      setDT(x)
      
      y <- x[ a > 2, ]
      
      y <- x[ a == 1, ]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-26
        • 1970-01-01
        相关资源
        最近更新 更多