2015-10-13 4 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 
    } 
    )) 

Однако я настоятельно рекомендую не использовать назначение для программного создания data.frames. Вы должны импортировать свои data.frames внутри списка.