【问题标题】:Warning message: NAs introduced by coercion while changing to numeric警告消息:在更改为数字时强制引入 NA
【发布时间】:2020-10-29 06:12:46
【问题描述】:

我正在修改 CSV,其中一列是带逗号的数字。我在阅读时使用以下选项 Prv_mnth_so <- read.csv("sales office previous month.csv", stringsAsFactors = FALSE) 然后用空格替换逗号 Prv_mnth_so1$Lc_Amount <- gsub(",", "", Prv_mnth_so1$Lc_Amount) 将其更改为数字 Prv_mnth_so3$Lc_Amount <- as.numeric(as.character(Prv_mnth_so3$Lc_Amount)) 但我收到以下警告 警告信息:强制引入的 NAs 这在本专栏的总结中进一步造成了问题

【问题讨论】:

  • 这三个帖子中的任何一个都解决了您的问题吗? 1, 2, 3

标签: r na


【解决方案1】:

我们可以使用grep 进行子集化

df$a[grep('^\\d+$', df$a, invert = TRUE)]
#[1] "a"

数据

df <- data.frame(a = c("23", "34", "a", "56"))

【讨论】:

    【解决方案2】:

    您尚未提供示例来为您的数据提供确切答案,但此警告意味着您的数据中有一些值无法转换为数字。

    如果您有一个非常大的数据并且无法手动查看您的数据,您可以做的是创建一个包含数值的新列,然后检查转换为 NA 的值。例如,

    df <- data.frame(a = c("23", "34", "a", "56"))
    df$b <- as.numeric(df$a)
    #Warning message:
    #NAs introduced by coercion 
    df$a[is.na(df$b)]
    #[1] "a"
    

    然后您可以决定需要对这些值做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 2021-02-07
      • 1970-01-01
      相关资源
      最近更新 更多