Here is my example.
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 d
You can also use as_date
function from lubridate.
library(lubridate)
for(i in dates_list){
print(as_date(i))
}
[1] "2018-11-11"
[1] "2016-01-01"
1) Use as.list
:
for(el in as.list(dates_list)) {
print(el)
}
giving:
[1] "2018-11-11"
[1] "2016-01-01"
2) or not quite as nice but one can iterate over the indexes:
for(i in seq_along(dates_list)) {
print(dates_list[i])
}
The cause of the problem could be that dates_list <- my_df$col_2
coerces the column to a date vector:
dates_list <- my_df$col_2
class(dates_list)
> [1] "Date"
so another solution would be to resolve this, as follows:
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"