将CSV文件导入R,大写

时间:2015-10-13 16:28:59

标签: r csv import read.csv toupper

新手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文件,但宁愿避免这样做。

1 个答案:

答案 0 :(得分:1)

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

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。