Я работаю над R и учусь кодировать. Я написал фрагмент кода, используя цикл for, и я нахожу его очень медленным. Мне было интересно, смогу ли я получить некоторую помощь, чтобы преобразовать его в функцию sapply или lapply. Вот мой рабочий код R:
library(dplyr)
pollutantmean <- function(directory, pollutant, id = 1:332) {
files_list <- list.files(directory, full.names=TRUE) #creates a list of files
dat <- data.frame() #creates an empty data frame
for (i in seq_along(files_list)) {
#loops through the files, rbinding them together
dat <- rbind(dat, read.csv(files_list[i]))
}
dat_subset <- filter(dat, dat$ID %in% id) #subsets the rows that match the 'ID' argument
mean(dat_subset[, pollutant], na.rm=TRUE) #identifies the Mean of a Pollutant
}
pollutantmean("specdata", "sulfate", 1:10)
Этот код возвращает почти 20 секунд, что недопустимо для 332 записей. Представьте себе, если у меня есть набор данных с 10K-записями и я хочу получить среднее значение этих переменных?