read.csv:某些列在 R 中设置为零(应该是数字但作为字符导入)

问题描述 投票:0回答:0

我正在尝试导入一些带有字段数据的 csv 文件,以将多个 csv 文件合并为一个。 我的目标是只有数字列。

不幸的是,R 将某些列的所有值替换为“0”。 我相信这与数据文件中的某些缺失值或列中的错误字符有关。这种情况发生在“A”、“Ca”、“Ci”上。

当我检查 str() 函数时,我可以看到大多数作为字符导入的列只显示零,而不是原始 csv 中的值。

这是我目前拥有的代码:

    licor6800.point_measurement.compiler<-function(){
    
      filenames <- list.files(pattern="*.csv", full.names=TRUE)
      for (filename in filenames) {
        meas<-read.csv(filename, skip = 13, fileEncoding="utf-16LE", check.names=T, header = TRUE)[-1:-2,] 
        list<-cbind(filename, meas)
        list<-list%>%select("filename","date","A","Ca", "Ci","E", "CO2_s", "CO2_r", "Qin", "gsw","gtc", "Pa","Qin","RHcham","Tleaf", "PhiPS2", "Fo", "Fm", "Fv/Fm", "Adark", "Fs", "Fm",)%>%
          mutate("date" = str_split_fixed(list$date, "[:blank:](?=\\d)", 2)[,1])%>%
          mutate("date" = str_sub(date,start = 5))%>%
          mutate("Time" = str_split_fixed(list$date, "[:blank:](?=\\d)", 2)[,2])%>%
          rename("Date" = date )
      list$Date<- sub("(?<=^..)", "\\.", list$Date, perl=TRUE)
      completeA6800 <- if(exists('completeA6800') == TRUE){rbind(completeA6800, list)} else{list}
      }
      return(completeA6800)
    }
    #View(completeA6800)

str(completeA6800)

我尝试使用 as.numeric 函数,na.strings = "NA", stringsAsFactors=FALSE, FUN=as.numeric.

我会非常感谢一些建议。 提前致谢!

r missing-data numeric read.csv
© www.soinside.com 2019 - 2024. All rights reserved.