2016-03-10 3 views
0

У меня есть файл данных xlsx, где первая строка - это время var, заданное в формате (т. Е. Jan-53 feb-53). Я использовал эту команду для чтения данных, но R преобразует число, отличное от года. Ниже приведена моя команда. wpi_raw<- read_excel("/Users/sonu/Dropbox/vd_ps/wpi_monthly.xlsx",sheet=1, col_names = TRUE,col_types=NULL,na="",skip=0) Пожалуйста, предложите, как мне читать данные с помощью read_excel. Я предоставляю ссылку для удаления ссылок для справки.
<a href="https://www.dropbox.com/s/vpm8hbk63zc1jcd/wpi_monthly.xlsx?dl=0">dpi_monthly</a>чтение файла xlsx с использованием read_xlsx в R с первой строкой как переменной месяца-месяца

+0

Не видя пример ваших данных. Я предлагаю искать команду «as.Date». Вы должны иметь возможность преобразовать введенную строку в объект даты с чем-то похожим на: as.Date (wpi_raw [, 1], format = "% b-% y") – Dave2e

ответ

1

При импорте даты из Excel, вы должны преобразовать их из дней с начала эпохи к тому, что вы хотите ...

library("readxl") 
tmp <- tempfile(fileext=".xlsx") 
download.file("https://www.dropbox.com/s/vpm8hbk63zc1jcd/wpi_monthly.xlsx?dl=1", 
       destfile=tmp, mode="wb") 
wpi_raw <- read_excel(tmp, sheet=1, col_names = TRUE,col_types=NULL,na="",skip=0) 

names(wpi_raw)[2:ncol(wpi_raw)] <- format(as.Date(as.numeric(names(wpi_raw)[2:ncol(wpi_raw)]), 
              origin="1900-01-01"), "%b-%y") 
> names(wpi_raw) 
[1] "commodity" "Apr-53" "May-53" "Jun-53" "Jul-53" 
[6] "Aug-53" "Sep-53" "Oct-53" "Nov-53" "Dec-53" 
[11] "Jan-54" "Feb-54" "Mar-54" 
+0

Уважаемый Кори, спасибо за помощь. Не могли бы вы также объяснить мне коды. Я попытался понять это, но ... Далее я использовал следующую команду для изменения данных, но теперь R принимает месячный var var, поскольку char 'wpi_long <- wpi_raw %>% gather (month_year, wpi, 2:13, na.rm = FALSE) '. Пожалуйста, предложите, как я пытаюсь выучить R. –

+0

Да, команда format принимает числовую переменную даты и форматирует ее как строку. Я думаю, что все имена столбцов в любом случае являются строками ... Чтобы вернуть поле даты, требуется небольшая работа, так как год - это всего лишь двухзначное число. Мы должны помочь R и сказать, что это 1900-ые ... 'wpi_long $ date <- as.Date (paste0 (gsub (" - "," -19 ", wpi_long $ month_year)," _1 "), % b-% Y_% d ")' – cory