Я только начал изучать, как использовать lapply. Я ищу, чтобы прочитать папку CSV, изменить их, чтобы создать переменную state
(которая основана на метке имени файла), а затем связать их в целом.
Однако я немного озадачен частью mutate
этого процесса. Я просмотрел несколько сообщений, и кажется, что самый простой способ сделать это - заключить мои команды в функцию logi c и затем проанализировать их с помощью lapply.
Вот что я сделал:
file_list <- list.files(pattern = "\\.csv$")
path<-"~/Downloads/Postings CSV"
read_report_data <- function(path) {
report_df <- read.csv(path)
report_df<-mutate(report_df, state=substring(report_df, 20, nchar(report_df) - 9))
}
reports <- lapply(file_list, read_report_data)%>%
bind_rows
Однако я получаю эту ошибку трассировки:
Error: Column `state` must be length 726 (the number of rows) or one, not 8
Не уверен, что я сделал, чтобы получить эту ошибку. Ваша помощь очень ценится
Предложение, которое сработало
file_list <- list.files(pattern = "\\.csv$")
path<-"~/Downloads/Postings CSV"
read_report_data <- function(path) {
report_df <- read.csv(path)
mutate(report_df, state = substring(path, 20, nchar(path) - 9))
}
library(purrr)
map_dfr(file_list, read_report_data, full.names = TRUE)