Конвертировать несколько столбцов в «Дата» в большом списке - PullRequest
0 голосов
/ 27 марта 2020

Я работаю с большим набором данных, который хранится в списке. Список содержит 450 фреймов данных. Каждый фрейм данных выглядит одинаково (с одинаковыми именами столбцов), но с разными значениями: Вот пример одного фрейма данных:

structure(list(Date = structure(1:10, .Label = c("01.01.2009 00:00:00", 
"01.01.2009 01:00:00", "01.01.2009 02:00:00", "01.01.2009 03:00:00", 
"01.01.2009 04:00:00", "01.01.2009 05:00:00", "01.01.2009 06:00:00", 
"01.01.2009 07:00:00", "01.01.2009 08:00:00", "01.01.2009 09:00:00"
), class = "factor"), SWC = c(NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN)), row.names = c(NA, 10L), class = "data.frame")

Я хочу преобразовать столбец «Дата» в дату с as.Date() для каждого отдельного фрейма данных в списке. Из-за этого я создал для l oop:

for (i in length(list.data.SM)) {

list.data.SM[[i]] <- as.Date(list.data.SM[[i]]$Date, format = "%d.%m.%Y %H:%M:%S")
}

Впоследствии я хотел подмножество данных из первого кадра данных в списке:

subset2009 <- subset(list.data.SM[[1]], Date <= "2009-12-31 23:00:00")

Подмножество теперь возвращает " Оператор $ недопустим для атомов атома c, что меня очень смущает, поскольку в коде нет $. Кроме того, я понял, что после моего for-l oop «list.data.SM» превратился в значение и больше не отображается в качестве данных в глобальной среде.

Спасибо за вашу помощь заранее.

1 Ответ

0 голосов
/ 28 марта 2020

Решением проблемы было использование seq_along в for l oop. Поэтому я написал:

for (i in seq_along(list.data.SM)) {

  list.data.SM[[i]]$Date <- as.Date(list.data.SM[[i]]$Date, format = "%d.%m.%Y %H:%M:%S")
}
...