У меня есть файл данных 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 с первой строкой как переменной месяца-месяца
ответ
При импорте даты из 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"
Уважаемый Кори, спасибо за помощь. Не могли бы вы также объяснить мне коды. Я попытался понять это, но ... Далее я использовал следующую команду для изменения данных, но теперь R принимает месячный var var, поскольку char 'wpi_long <- wpi_raw %>% gather (month_year, wpi, 2:13, na.rm = FALSE) '. Пожалуйста, предложите, как я пытаюсь выучить R. –
Да, команда format принимает числовую переменную даты и форматирует ее как строку. Я думаю, что все имена столбцов в любом случае являются строками ... Чтобы вернуть поле даты, требуется небольшая работа, так как год - это всего лишь двухзначное число. Мы должны помочь R и сказать, что это 1900-ые ... 'wpi_long $ date <- as.Date (paste0 (gsub (" - "," -19 ", wpi_long $ month_year)," _1 "), % b-% Y_% d ")' – cory
Не видя пример ваших данных. Я предлагаю искать команду «as.Date». Вы должны иметь возможность преобразовать введенную строку в объект даты с чем-то похожим на: as.Date (wpi_raw [, 1], format = "% b-% y") – Dave2e