объединить два столбца и создать столбец, чтобы указать имя предыдущего объединенного столбца - PullRequest
2 голосов
/ 07 апреля 2019

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

structure(list(moda = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L), .Label = c("BS1", "HW1", "PG"), class = "factor"), 
t0 = c(1.5, 1.5, 2, 1, 1.5, 1.2, 1, 2.4, 1.3, 1.4, 1.7, 2, 
1.8, 2.3, 2.5, 2.5, 1.5, 1.5, 2, 2.1, 1.8, 1.3, 2, 1.5, 2, 
3.5, 1.5, 1.7), t14 = c(1.5, 1.5, 2, 1, 1.5, 1.2, 1, 2.4, 
1.3, 1.4, 5, 7, 2.5, 6.5, 5.4, 5, 6, 5.7, 7, 3.5, 4.7, 4.5, 
5.9, 5, 6, 7, 6, 5.5)), class = "data.frame", row.names = c(NA, 
-28L))
structure(list(moda = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "HW1",       class = "factor"), 
time = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("t0", 
"t14"), class = "factor"), unified = c(1.7, 2, 1.8, 5, 7, 
2.5)), class = "data.frame", row.names = c(NA, -6L))

Таким образом, идея состоит в том, чтобы получить в конце t0и столбец t14, объединенный в новый столбец.И получить другой столбец, который указывает t0 или t14 для каждого значения объединенного столбца.Отредактируйте вторую структуру, чтобы проиллюстрировать краткий пример желаемого результата.

1 Ответ

3 голосов
/ 07 апреля 2019

Мы можем использовать gather здесь

library(tidyr)
dflong <-  gather(df1, time, unified, t0:t14)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...