Перебирая вектор дат в R - PullRequest
0 голосов
/ 03 мая 2018

Вот мой пример.

my_df <- data.frame(col_1 = c(1,2), 
col_2 = c(as.Date('2018-11-11'), as.Date('2016-01-01')))
dates_list <- my_df$col_2
for(el in dates_list){
  print(el)
}

Генерирует:

17846
16801

Как вместо этого выводить даты? Я могу сделать это с явным индексом, но хотел бы иметь более простое решение

Ответы [ 3 ]

0 голосов
/ 03 мая 2018

Вы также можете использовать функцию as_date от lubridate.

library(lubridate)

for(i in dates_list){
   print(as_date(i))
}

[1] "2018-11-11"
[1] "2016-01-01"
0 голосов
/ 03 мая 2018

Причиной проблемы может быть то, что dates_list <- my_df$col_2 приводит столбец к вектору даты:

dates_list <- my_df$col_2
class(dates_list)
> [1] "Date"

так что другое решение было бы решить эту проблему следующим образом:

dates_list <- my_df["col_2"]
class(dates_list)
[1] "data.frame"

for(el in dates_list){
    print(el)
}
[1] "2018-11-11" "2016-01-01"
0 голосов
/ 03 мая 2018

1) Использование as.list:

for(el in as.list(dates_list)) {
  print(el)
}

дает:

[1] "2018-11-11"
[1] "2016-01-01"

2) или не так хорошо, но можно перебирать индексы:

for(i in seq_along(dates_list)) {
  print(dates_list[i])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...