Доброе утро / день / ночь
Я сообщаю о своей ситуации, начиная с контекста:
У меня есть папка с 543 .csv файлами почасовых температур, в которых вы найдете температуруданные в час и столбцы, которые у меня есть: # estación, датчик, время захвата температуры и значение температуры.
Я должен прочитать 543 .csv как кадр данных, что не сложно по отдельности, ноЯ не знаю, как читать их все «автоматически».
Пока я пробовал следующую строку кода:
temps <- lapply(Sys.glob("*.csv"), read.csv)
Однако, это сбивает меня с толкубольшой список, в котором 543 фрейма данных находятся внутри него.
Опять же, индивидуальный доступ к каждому не сложный код, как я это сделал:
temp2 <- separate(temps[[1]], event_time, c("Date","Hour"), sep = " ")
Но идея состоит в том, чтобы543 фрейма данных, чтобы иметь возможность обрабатывать их позже с помощью температурного фильтра и блокпоста по фрейму данных (т. е. вынуть 543 блокпоста) и оттуда генерировать 543 новых .csv.
При этом какМогу ли я выбрать кадры данныхбольшой список для индивидуального получения каждого фрейма данных в R / Rstudio?
С другой стороны - и с учетом сложившейся ситуации - как только я смогу работать с каждым из 543 фреймов данных, Я предполагаю, что мне придется создать цикл, в котором мне нужно будет создать цикл, в котором я делаю фильтрацию температуры, блок-график и новый вывод для 543 фреймов данных. Правда? Каким будет этот цикл?
Извините, я относительно новичок в использовании R и чувствую себя немного растерянным. И извините за мой английский.
Огромное спасибо за помощь!
Ps: Я прилагаю то, что у меня есть, пока код, на случай, если он послужит руководством к проблемам, которые вы поднимаете. Я также получаю отзывы от остальной части кода, в случае, если у вас есть что-то еще или сможете сделать его более эффективным. Еще раз спасибо
library(tidyr)
library(ggplot2)
library(outliers)
library(dplyr)
#Select working directory
setwd("G:/IDEAM-2019-09-04/Datos/TEMP_AUTOMATICAS")
#Variable files for .csv files
temps <- lapply(Sys.glob("*.csv"), read.csv)
#Reading and separating the hour into a new column
temp2 <- separate(temps[[1]], event_time, c("Date","Hour"), sep = " ")
#Selection variables to work with
temp3 <- temp2[,c(4:5)]
#Hourly temperature display
templist <- split(temp3, temp3$Hour)
#Data frame parameters
summary(temp3)
#Temperature filter -15°C < T < 50°C #event_value is the temperature value.
tempfilt <- (select(temp3,Hour, event_value) %>% filter(event_value <50) %>%
filter(event_value > -15) %>% arrange(Hour, event_value))
#boxplot creation
tempbp <- (ggplot(tempfilt, aes(x = Hour, y = event_value)) + ggtitle("Boxplot1")
+ ylab("Temperature")+ geom_boxplot())
print(tempbp)
#Identification and filtering of outliers
summary(tempfilt)
LIR <- boxplot.stats(tempfilt$event_value)$stats[1]
LSR <- boxplot.stats(tempfilt$event_value)$stats[5]
outliers <- boxplot.stats(tempfilt$event_value)$out
tempatipi <- ggplot_build(tempbp)
#New data frame with filtered data
finaltemp <- as.data.frame(tempbp[[1]], xy=T)
#Save as .csv
output.file <- ("../TemperaturasFinal/0001105020-0068-3.csv")
write.csv(finaltemp, output.file)