缺少R参数,即使使用显式空检查也没有默认值

缺少R参数,即使使用显式空检查也没有默认值,r,R,我希望这个问题不像标题看起来那么基本。我已经和R一起工作了几个月了,但我似乎不知道这里发生了什么。我正在读取一个非常大的数据集,并试图将列转换为正确的数据类型。我有四列,我相信只是数字,但这里似乎有一些不好的数据。当以数字形式阅读这些列时,我看到了以下问题: scan()应为“真实”,得到“2” 看起来很简单,所以我写了这个方法来非常安全地删除列中可能存在的任何引号: setAs("character", "num_strip_quote", function(from) {

我希望这个问题不像标题看起来那么基本。我已经和R一起工作了几个月了,但我似乎不知道这里发生了什么。我正在读取一个非常大的数据集,并试图将列转换为正确的数据类型。我有四列,我相信只是数字,但这里似乎有一些不好的数据。当以数字形式阅读这些列时,我看到了以下问题:

scan()应为“真实”,得到“2”

看起来很简单,所以我写了这个方法来非常安全地删除列中可能存在的任何引号:

setAs("character", "num_strip_quote",
      function(from) {
        coerceString = NA
        if(!is.null(from)){
          coerceString = from
        }
        as.numeric(gsub('"'), "", coerceString)
    }
)
下面是我的read.csv方法:

data <- read.csv("data.csv", header=TRUE, stringsAsFactors = FALSE, na.strings = c("NA", ""),
             colClasses = c(rep("character", 3),
                            rep("num_strip_quote", 1), 
                            rep("character", 3), 
                            rep("num_strip_dollar_comma", 3), 
                            rep("character", 3),
                            "num_strip_dollar_comma", 
                            rep("character", 4), 
                            "num_strip_dollar_comma", 
                            "date"))

data我最初从字符串中删除引号的调用是:

as.numeric(gsub(“),”,强制限制)

我在gsub方法中添加了一个参数,这使得调用只有一个参数,而不是必需的三个参数。应该是:


as.numeric(gsub(“,”,强制限制))

?gsub
然后看
as.numeric(gsub(“,”,强制限制)
中的括号。感谢您的鹰眼评论:)