2015-10-13 179 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。