Хорошо, так что я бы хотел, чтобы автоматически брать столбцы с похожими именами, например, x1, x2, ..., xn или y_1, y_2, y_3, ..., y_n, чтобы быть сложеннымина основе пар.Сначала давайте сделаем некоторые данные:
set.seed(1)
data <- purrr::rerun(3, x = runif(10), y = rnorm(10)) %>%
dplyr::bind_cols() %>%
dplyr::mutate(id1 = letters[1:10], id2 = LETTERS[1:10])
Затем я бы хотел, чтобы все пары x1, x2, x3 и y1, y2, y3 были превращены в два столбца x, y, а затем получили двастолбцы id после этого (которые будут повторяться стеками).Есть ли простой способ сделать это?Это моя текущая попытка:
data %>%
gather('k', 'v', -id1, -id2) %>%
mutate(k = str_remove(k, '[0-9]')) %>%
split(.$k) %>%
lapply(function(x) spread(x, 'k', 'v'))
, но она дает мне следующую ошибку:
Error: Duplicate identifiers for rows (1, 11, 21), (2, 12, 22), (3, 13, 23), (4, 14, 24), (5, 15, 25), (6, 16, 26), (7, 17, 27), (8, 18, 28), (9, 19, 29), (10, 20, 30)
, от которой я не уверен, как избежать.