2016-02-19 8 views
1

Я надеюсь, что кто-то может помочь, и что я не пропустил что-то важное в моих поисках ответов (я очень новичок в R): Я пытаюсь импортировать несколько CSV и затем возвращать количество строк в каждом из них с исходным именем файла в качестве вывода. CSV-файлы называются 50001,15, 50002,15 и т.д.Возвратите общее количество строк из mulitple .csv

До сих пор я (импортировать все .csv из директории)

files=list.files(pattern="*.csv") 

for(file in files) 

{ 

perpos <- which(strsplit(file, "")[[1]]==".") 

assign(

gsub(" ","",substr(file, 1, perpos-1)), 

read.csv(paste("C:/Users/NAMEetc/",file,sep=""))) 

} 

И я могу провести nrow nrow(50001.15) вернуть мой результат для человека файл, но я надеялся сделать это для всех в одном процессе.

У меня была игра с загрузкой других бит в попытке (просто вызовет слишком много путаницы, если я войду в нее). Есть ли способ, чтобы строка nrow возвращалась вместе.

Любая помощь будет принята с благодарностью

+0

Try 'файлы <- list.files (шаблон = '. * \\ CSV', full.names = TRUE); библиотека (data.table); lst <- lapply (файлы, fread); v1 <- sapply (lst, nrow); имена (v1) <- sub ('\\. csv', '', basename (файлы)) ' – akrun

+0

Я разместил комментарии в качестве решения. Если это сработает, попробуйте принять решение, нажав на отметку рядом с голосованием. – akrun

ответ

0

Мы цикл через files в list с fread из data.table, получить nrow в vector, изменить names элементов в vector путем извлечения имен файлов из ' файлов которых с помощью sub

files <- list.files(pattern='.*\\.csv', full.names=TRUE) 
library(data.table) 
lst <- lapply(files, fread) 
v1 <- sapply(lst, nrow) 
names(v1) <- sub('\\.csv', '', basename(files)) 
Смежные вопросы