【问题标题】:Error trying to extract rows with a specific column value in r?尝试在 r 中提取具有特定列值的行时出错?
【发布时间】:2017-05-23 21:23:52
【问题描述】:

遇到麻烦了。这是我的数据框的示例(有 4k 行)。我想在 LocationID 列(“D”)中提取具有特定名称的行。

D, AWC_Code
Yukon, 2
Unimak, 3
Taku River, 4
Banana, 5
Tailgate, 6

但是,当我使用此脚本时,我不断收到错误消息。想法?

awc3 <- awc2[ D == "Unimak" | D == "Taku River" ]

Error in D == "Unimak" : 
comparison (1) is possible only for atomic and list types

【问题讨论】:

  • awc3 &lt;- awc2[ awc2$D == "Unimak" | awc2$D == "Taku River", ]

标签: r dataframe extract


【解决方案1】:

您可以使用dplyr::filter

library(dplyr)
awc3 <- filter(awc2, D == "Unimak" | D == "Taku River" )

【讨论】:

    【解决方案2】:

    在基础 R 中,您可以使用 dataframe$column 进行逻辑索引:

    awc3 <- awc2[ awc2$D == "Unimak" | awc2$D == "Taku River", ]
    

    【讨论】:

    • awc3 &lt;- with(awc2, awc2[D == "Unimak" | D == "Taku River", ]
    【解决方案3】:

    我相信,您将 awc3 作为一个包含两列的 data.frame。

    library(dplyr)  
    awc3 <- filter(awc2, D %in% c("Unimak", "Taku River"))
    # or, this should also do the trick 
    awc2[awc2$D %in% c("Unimak", "Taku River"),]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多