Извлечение одного значения ячейки из нескольких файлов 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,

Другие вопросы по тегам