R не распознает даты в цикле - PullRequest
0 голосов
/ 15 февраля 2019

Я собираюсь перебрать вектор дат, используя эти даты в качестве критерия поднабора и выполнить вычисления.Для простоты мы предположим, что эти вычисления представляют собой количество строк.

Проблема в том, что R рассматривает вектор дат как 5-значное число.Несмотря на то, что в качестве дат используется as.Date, цикл создает список длиной 17 896.В моем списке циклов всего 12 дат.

Я очень жду любых предложений.Спасибо.

# first date of each month in 2018
dates_2018 = seq(as.Date("2018-1-1"), as.Date("2018-12-31"), "days")
loop_date = as.Date(as.vector(tapply(dates_2018, substr(dates_2018, 1, 7), max), mode="any"), origin = "1970-01-01")

# dummy df
df = data.frame(id = 1:length(dates_2018)
                ,dates_2018)

# count number of days satisfy criteria
y = list()
for (i in loop_date)
{
  y[[i]] = nrow(df[df$dates_2018 >= i, ])
}; y

1 Ответ

0 голосов
/ 15 февраля 2019

Вы можете сделать y[[i]] = nrow(df[df$dates_2018 >= as.Date(i,origin = "1970-01-01"), ]) и получить результат на y[[17562]], но вы найдете свой результат в списке с 17 896 элементами.Вот более правильное

for (i in seq_along(loop_date))
{
  y[[i]] = nrow(df[df$dates_2018 >= loop_date[i], ])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...