使用stringsAsFactor = F时,数字字段变成“ char”

时间:2018-09-04 15:55:51

标签: r

我正在尝试从特定文件夹导入一些csv文件:

setwd("C://Users//XYZ//Test")

filelist = list.files(pattern = ".*.csv")

datalist = lapply(filelist, FUN=read.delim, sep = ',', header=TRUE,
                  stringsAsFactors = F)

for (i in 1:length(datalist)){
    datalist[[i]]<-cbind(datalist[[i]],filelist[i])
}

Data = do.call("rbind", datalist)

使用上面的代码后,尽管包含数字,但仍有几列类型为character。如果我不使用stringsAsFactor = F,则这些字段读为factor,当我以后使用as.numeric(as.character())时,这些字段将变成缺少的值。

有什么解决方法可以使某些字段保留为numeric吗?我想作为numeric的字段如下所示:

Price.Plan     Feature.Charges

$180.00        $6,307.56    
$180.00        $5,431.25

谢谢

1 个答案:

答案 0 :(得分:2)

$,不被视为numeric,因此在stringsAsFactors = FALSE中使用read.delim时,它将列类型分配为{{1} }。要进行更改,请用character删除$,,转换为gsub并将其分配给特定的列

numeric