【问题标题】:Unable to create subset in R [duplicate]无法在 R 中创建子集 [重复]
【发布时间】:2017-08-28 13:39:15
【问题描述】:
Part1 = subset(mvt, mvt$Year == 2007,2008,2009,2010,2011,2012)

打印第 1 部分给我 null ?我能知道这条线有什么问题吗?我是初学者。 tnx 的耐心。

【问题讨论】:

    标签: r subset


    【解决方案1】:

    您需要使用%in% 运算符。

    x <- data.frame(letters = sample(letters),
                    ints = 1:length(letters)
    )
    
    > subset(x, subset = x$letters %in% c("r", "o", "m", "a", "n"))
       letters ints
    4        r    4
    6        m    6
    9        n    9
    10       a   10
    12       o   12
    

    【讨论】:

    • 你不需要x$
    【解决方案2】:
    > Part1 <- subset(mvt, mvt$Year %in% c(2007:2012))
    > Part1
      Year Value
    1 2007     1
    2 2008     2
    3 2009     3
    4 2010     4
    5 2011     5
    6 2012     6
    

    【讨论】:

    • @NegativeVoters - 为什么这个被投反对票?它提供了所需的输出...
    • 虽然它确实解决了问题,但可能有 2 个不赞成投票的原因:此解决方案已在您的帖子之前发布,并且您没有对您的代码行进行任何解释(甚至使用的示例数据)来帮助 OP。
    • 现在是发布答案的时机。我也在编辑这个问题(这是要经过同行评审的)。投反对票没有任何意义。重复的答案可以在 cmets 中标记为重复。
    • 我实际上投票拒绝您的编辑,因为您不应该在编辑中添加示例数据和/或所需的输出。相反,您可以要求 OP 提供一些。我只是在给你可能的理由;-)
    • 是的,但仍然无济于事
    【解决方案3】:

    我建议使用%in% 运算符,但您也可以使用or 运算符。

    Year <- c(2008, 2008, 2009, 2010, 2012, 2012, 2015)
    Letter <- sample(letters)[1:length(Year)]
    mvt <- data.frame(Year, Letter)
    > mvt
      Year Letter
    1 2008      z
    2 2008      a
    3 2009      c
    4 2010      l
    5 2012      k
    6 2012      w
    7 2015      r
    
    subset(mvt, mvt$Year == 2008 |  mvt$Year == 2012)
    > subset(mvt, mvt$Year == 2008 |  mvt$Year == 2012)
      Year Letter
    1 2008      z
    2 2008      a
    5 2012      k
    6 2012      w
    

    【讨论】:

    • 为什么会被否决?
    猜你喜欢
    • 1970-01-01
    • 2019-03-06
    • 2019-01-02
    • 2012-04-08
    • 2012-10-14
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多