Есть ли простой способ сделать фреймы данных красивыми? - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть датафрейм, и структура хороша для некоторых целей, но абсолютно не для GGPLOT.есть ли функция для преобразования

x <- data.frame(head_1 = c(1,2,3,1,2,3),
           head_2 = c(4,5,6,1,2,3),
            date = c("01-01-2019","01-01-2019","01-01-2019","02-01-2019","02-01-2019","02-01-2019"))

в

y <- data.frame(type= c("head_1","head_1","head_1","head_1","head_1","head_1",
                    "head_2","head_2","head_2","head_2","head_2","head_2"),
            date = c("01-01-2019", "01-01-2019","01-01-2019","01-01-2019","01-01-2019","01-01-2019",
                     "02-01-2019", "02-01-2019","02-01-2019","02-01-2019","02-01-2019","02-01-2019"),
            value= c(1,2,3,1,2,3,4,5,6,1,2,3 ))

1 Ответ

2 голосов
/ 25 сентября 2019

Использование новой функции pivot_longer в редакции пакета tidyr> 1.0 может выполнить преобразование в одну строку.

library(tidyr)
y<-pivot_longer(x, cols = starts_with("head"), names_to = "type", values_to = "value")

y

 A tibble: 12 x 3
   date       type   value
   <fct>      <chr>  <dbl>
 1 01-01-2019 head_1     1
 2 01-01-2019 head_2     4
 3 01-01-2019 head_1     2
 4 01-01-2019 head_2     5
 5 01-01-2019 head_1     3
 6 01-01-2019 head_2     6
 7 02-01-2019 head_1     1
 8 02-01-2019 head_2     1
 9 02-01-2019 head_1     2
10 02-01-2019 head_2     2
11 02-01-2019 head_1     3
12 02-01-2019 head_2     3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...