0

新手 R 用户在这里...

我正在使用下面的代码导入文件夹中的所有 csv 文件:

path <- "C:/Users/Daniel/Desktop/Motors/"
files <- list.files(path=path, pattern="*.csv")
for(file in files)
{
  perpos <- which(strsplit(file, "")[[1]]==".") 
  assign(
    gsub(" ","",substr(file, 1, perpos-1)), 
    read.csv(paste(path,file,sep="")))
}

这些 CSV 文件实际上在后面的代码中充当查找表。为了避免用户错误,我很好奇是否有可能在导入文件时将每个数据框中的任何字符数据(不是标题)转换为大写。

当然,我可以手动更改每个 csv 文件,但宁愿避免这样做。

4

1 回答 1

1

这是一个解决方案:lapply toupper导入时 data.frame 中的每个字符变量。

assign(
  gsub(" ","",substr(file, 1, perpos-1)), 
  lapply(read.csv(paste(path,file,sep="")),
    function(x) {
      if(class(x) == "character") toupper(x)
      else if(is.factor(x)) factor(toupper(x))
      else x
    }
   ))

但是,我强烈建议您不要使用 assign 以编程方式创建 data.frames。您应该将 data.frames 导入列表中。

于 2015-10-13T16:40:26.180 回答