【问题标题】:How come I get NA values after subsetting in R?在 R 中进行子集化后如何获得 NA 值?
【发布时间】:2015-04-30 19:04:41
【问题描述】:

您知道为什么在将观察结果子集到新数据框后得到 NA 值以及如何解决这个问题吗?以下是我的做法 - 请随时告诉我我可能犯的任何错误。

我的数据框是 LE2010。我已按升序排列投票率,并希望选择前 5 行和后 5 行(投票率最高和最低的那些)

 head(LE2010)
      ward.name ward.code electorate votescast  turnout
 111   Haverstock E05000136       8621      3123 36.22550
 361   Courtfield E05000386       6407      2400 37.45903
 358     Brompton E05000383       5918      2362 39.91213
 365    Hans Town E05000390       6787      2722 40.10609
 370 Queen's Gate E05000395       6258      2565 40.98754
 363 Earl's Court E05000388       6514      2723 41.80227
 tail(LE2010)
  ward.name ward.code electorate votescast  turnout
 534 South   E05000559       7356      5589 75.97879
 535 Cheam   E05000560       7765      5929 76.35544
 499 Kew     E05000524       8212      6320 76.96055
 166 Southf. E05000191       8803      6803 77.28047
 99  Petts   E05000124      11000      8594 78.12727
 492 East    E05000517       7460      5871 78.69973

然后我选择前 5 行和最后 5 行(我不确定如何正确执行此操作,因此错误可能来自这里...

#Select the first 5 first and 5 last rows
LE2010.2 <- LE2010[1:5, ][620:624, ]
LE2010.2
 ward.name ward.code electorate votescast turnout
NA        <NA>      <NA>         NA        NA      NA
NA.1      <NA>      <NA>         NA        NA      NA
NA.2      <NA>      <NA>         NA        NA      NA
NA.3      <NA>      <NA>         NA        NA      NA
NA.4      <NA>      <NA>         NA        NA      NA

我现在子集中的值是 NAs...知道为什么以及如何解决这个问题吗?提前道歉这是一个新手问题:)

谢谢

旋律

【问题讨论】:

    标签: r na subset


    【解决方案1】:

    为什么您的代码不起作用的解释:

    LE2010.2 <- LE2010[1:5, ][620:624, ]
    

    LE2010[1:5, ] 抓取LE2010 的前 5 行。这是您键入的第一件事,因此首先执行此子集。当您在末尾粘贴更多括号时,您会再次尝试子集,但起点是您已经制作的子集,因此您尝试 5 行子集的第 620 到第 624 行。由于它只有 5 行,因此返回 NA。

    正如@cory 所说,LE2010[c(1:5, 620:624), ] 会起作用,因为您只需要一个子集。另一种方法是

    rbind(head(LE2010, 5), tail(LE2010, 5))
    

    我喜欢使用tail,因为你不需要知道有多少行,它只是从最后选择。在这里,我将两个子集绑定在一起,但子集都引用了原始对象。

    【讨论】:

    • 太好了,我明白为什么要感谢你和 Cory。非常感谢!
    【解决方案2】:

    试试这个:

    LE2010.2 <- LE2010[c(1:5, 620:624), ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-12
      • 2023-02-26
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 2017-04-30
      • 2018-12-29
      相关资源
      最近更新 更多