Как выбрать кадры данных большого списка, чтобы получить каждый кадр данных отдельно в R / Rstudio? - PullRequest
0 голосов
/ 15 октября 2019

Доброе утро / день / ночь

Я сообщаю о своей ситуации, начиная с контекста:

У меня есть папка с 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...