Извлечение одного значения ячейки из нескольких файлов CSV в R и
У меня есть 500 CSV. файлы с данными, которые выглядят так:
Я хочу извлечь одну ячейку (например, B4 или 0,477) для каждого файла CSV и объединить эти значения в один CSV. Какие рекомендации о том, как это легко сделать?
2 ответа
Вы можете попробовать что-то вроде этого
all.fi <- list.files("/path/to/csvfiles", pattern=".csv", full.names=TRUE) # store names of csv files in path as a string vector
library(readr) # package for read_lines and write_lines
ans <- sapply(all.fi, function(i) { eachline <- read_lines(i, n=4) # read only the 4th line of the file
ans <- unlist(strsplit(eachline, ","))[2] # split the string on commas, then extract the 2nd element of the resulting vector
return(ans) })
write_lines(ans, "/path/to/output.csv")
Я не могу добавить комментарий. Итак, я напишу свой комментарий здесь.
Поскольку ваши данные очень велики, и их очень трудно загрузить по отдельности, попробуйте следующее: Импортируйте несколько файлов.csv в R. Это похоже на первую часть вашей проблемы. Для второй части попробуйте это:
Вы можете сохранить свои данные как data.frame
(как с комментарием @Bruno Zamengo), а затем вы можете использовать select
а также merge
функции в R. Тогда вы можете легко объединить их в один csv
файл. С select
а также merge
Функции вы можете выбрать все значения, которые вам нужны, и их объединить. Я использовал эту идею в своем проекте. Не забудьте использовать lapply
,