2017-01-31 3 views
1

Мне нужно разархивировать сразу несколько файлов и добавить их в качестве фрейма данных на панели управления R.Как извлечь несколько zip-файлов и прочитать эти csvs в R?

В настоящее время я использую этот код:

zipF<- "/Users/sahilverma13/Desktop/chat_data_2017-01-30_IST.zip" 
outDir<-"/Users/sahilverma13/Desktop" 
unzip(zipF,exdir=outDir) 

Но я должен сделать это для каждого файла отдельно.

zipF <- list.files(pattern="*.zip") 

Я пробовал использовать шаблон, но он не работает.

Пожалуйста, помогите.

+0

попробуйте этот 'zipF <- list.files (pattern =". Zip ", full.names = T)'; 'sapply (zipF, unzip, exdir = ...)' –

ответ

0

Я часто использую функцию ldply из пакета plyr для чтения или создания файлов с несколькими файлами.

library(plyr) 

# get all the zip files 
zipF <- list.files(path = "/your/path/here/", pattern = "*.zip", full.names = TRUE) 

# unzip all your files 
ldply(.data = zipF, .fun = unzip, exdir = outDir) 

Поскольку Ричард указал, что это не полно (много кофе утром тоже не хорошо).

# get the csv files 
csv_files <- list.files(path = outDir, pattern = "*.csv") 

# read the csv files 
my_data <- ldply(.data = csv_files, .fun = read.csv) 

Мне очень понравился комментарий Джоэля. Я использовал для использования пакет plyr настолько, что забыл, что вы также можете использовать функцию sapply. Может быть, даже лучше использовать!

+0

Это половина проблемы, но не читает файлы csv в R –

+0

Это работает отлично, спасибо! За исключением только одной строки # читать CSV файлы my_data <- ldply (.data = csv_files, .fun = read.csv) Эта линия, кажется, не работает. –

+0

Просто чтобы проверить, но: Вы установили библиотеку 'plyr'? и '# read csv files' - это прокомментированная строка. Вы получаете какие-либо ошибки? – ricoderks