От короткого формата к длинному формату в R - PullRequest
0 голосов
/ 30 января 2019

Вот так выглядят мои данные в Excel, где статус и события являются переменными для упомянутых дат.Столбцы событий не имеют данных.

30/12/2018     31/12/2018           01/01/2019  
Status  event      status   event   status  event

delivered      ncp              ncp 

ncp        delivered            ncp     

Я хочу сделать эти переменные моими заголовками и добавить эти даты в виде столбца.

Примечание. Это просто образец моих данных,на самом деле даты доступны на месяц.Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Не уверен, что это именно то, что вам нужно, но это должно привести данные в хороший структурированный формат.

library(readxl)
library(dplyr)
library(tidyr)

file <- # INSERT FILE PATH HERE

df <- read_excel(file, col_names = FALSE)

df2 <- df %>%
       mutate(SEQ_NO = ifelse(row_number() > 2, row_number() - 2, NA)) %>%
       gather(COL, VAL, -SEQ_NO) %>%
       mutate(DATE = ifelse(grepl('/', VAL), VAL, NA),
              DATE = as.Date(DATE, format = '%d/%m/%Y')) %>%
       fill(DATE) %>%
       mutate(KEY = ifelse(VAL %in% c('status', 'event'), toupper(VAL), NA)) %>%
       fill(KEY) %>%
       filter(!is.na(SEQ_NO)) %>%
       select(-COL) %>%
       spread(KEY, VAL) %>%
       arrange(DATE, SEQ_NO) %>%
       select(DATE, SEQ_NO, STATUS, EVENT)
0 голосов
/ 30 января 2019

Сохраните ваш файл Excel как CSV.Затем используйте R read.csv() function

sample_data <- read.csv(file="c:/mySampleData.csv", header=TRUE, sep=",")

Первым параметром функции является путь к вашему файлу.
Он преобразует ваши данные в фрейм данных, и вы можете получить доступ к столбцам, используя $,например, sample_data$Status вернет столбец состояния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...