2015-10-13 175 views
0

新手[R用户在这里...导入CSV文件导入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

这是一个解决方案:lapplytoupper在导入时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。