Изменение формата с фактора на дату в R - PullRequest
1 голос
/ 15 мая 2019

Я все еще новичок и мне нужна помощь с моим набором данных в R. У меня есть набор данных, содержащий ежедневные наблюдения за рабочими днями. В этом наборе данных я хочу добавить даты пропущенных выходных и изменить формат даты на «2010-03-04». Набор данных выглядит следующим образом:

             Date    Price
2392 Mar 04, 2010 1,132.60 
2393 Mar 03, 2010 1,142.70 
2394 Mar 02, 2010 1,136.90 
2395 Mar 01, 2010 1,117.80
2396 Feb 26, 2010 1,118.30
2397 Feb 25, 2010 1,107.80
2398 Feb 24, 2010 1,096.50

Я использую следующее для изменения формата:

as.Date(gold_future$Date, format = '%b %d, %Y')
           Date    Price
2392       <NA> 1,132.60
2393       <NA> 1,142.70
2394       <NA> 1,136.90
2395       <NA> 1,117.80
2396 2010-02-26 1,118.30
2397 2010-02-25 1,107.80
2398 2010-02-24 1,096.50

Что происходит, так это то, что некоторые даты меняются на правильный формат, но для других я получаю NA. Кроме того, после форматирования столбца «Дата» я хотел бы добавить дополнительные строки для пропущенных выходных. Любые предложения, как я могу решить проблему с датами и включить недостающие строки? Между прочим, столбец даты имеет фактор класса.

Заранее спасибо!

1 Ответ

1 голос
/ 15 мая 2019

Опция будет

library(dplyr)
library(lubridate)
df1 %>%
    mutate(Date = mdy(Date))
#       Date    Price
#1 2010-03-04 1,132.60
#2 2010-03-03 1,142.70
#3 2010-03-02 1,136.90
#4 2010-03-01 1,117.80
#5 2010-02-26 1,118.30
#6 2010-02-25 1,107.80
#7 2010-02-24 1,096.50

as.Date также работает

as.Date(df1$Date, "%b %d, %Y")
#[1] "2010-03-04" "2010-03-03" "2010-03-02" "2010-03-01" "2010-02-26" "2010-02-25" "2010-02-24"

data

df1 <- structure(list(Date = c("Mar 04, 2010", "Mar 03, 2010", "Mar 02, 2010", 
"Mar 01, 2010", "Feb 26, 2010", "Feb 25, 2010", "Feb 24, 2010"
), Price = c("1,132.60", "1,142.70", "1,136.90", "1,117.80", 
"1,118.30", "1,107.80", "1,096.50")), class = "data.frame",
row.names = c("2392", 
"2393", "2394", "2395", "2396", "2397", "2398"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...