Зависит ли порядок ключей от того, перечисляю ли я сначала столбцы для сбора по сравнению с теми, которые не собираем?
Это мой data.frame:
library(tidyr)
wide_df <- data.frame(c("a", "b"), c("oh", "ah"), c("bla", "ble"), stringsAsFactors = FALSE)
colnames(wide_df) <- c("first", "second", "third")
wide_df
first second third
1 a oh bla
2 b ah ble
Сначала я собираю все столбцы в определенном порядке, и мой порядок учитывается в списке ключей как второй, первый, хотя на самом деле столбцы упорядочены как первый, второй:
long_01_df <- gather(wide_df, my_key, my_value, second, first, third)
long_01_df
my_key my_value
1 second oh
2 second ah
3 first a
4 first b
5 third bla
6 third ble
Затем я решаю исключить из сбора одну колонку:
long_02_df <- gather(wide_df, my_key, my_value, second, first, -third)
long_02_df
third my_key my_value
1 bla second oh
2 ble second ah
3 bla first a
4 ble first b
Ключи снова упорядочены как второй, первый. Затем я кодирую это так, полагая, что делаю то же самое:
long_03_df <- gather(wide_df, my_key, my_value, -third, second, first)
long_03_df
И я получаю ключи, упорядоченные в соответствии с реальным порядком столбцов в исходном data.frame:
third my_key my_value
1 bla first a
2 ble first b
3 bla second oh
4 ble second ah
Это поведение даже не меняется, когда я вызываю функцию с factor_key = TRUE
. Что мне не хватает?
dplyr::select(iris[, 1:3], -Sepal.Length, Petal.Length, Sepal.Width)
. - person lukeA   schedule 13.04.2016