rbind (x, y) против rbind (y, x) - PullRequest
       8

rbind (x, y) против rbind (y, x)

0 голосов
/ 04 февраля 2020

Какие различия существуют между rbind (x, y) и rbind (y, x)?

Почему я спрашиваю: В отчаянии я попробовал оба и заметил, что один из них работает. Когда rbind (x, y) дал мне Error: charToDate string is not in an unambiguous format, rbind (y, x) не дал.

Примечание. Я не могу привести воспроизводимый пример, поскольку не знаю, что послужило причиной этого расхождения.

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

В качестве дополнительного ответа на заголовок вопроса, я подумал, что было бы полезно запустить следующий тест, который дал результаты, противоположные тем, которые я ожидал.

x <- data.frame(x = rnorm(100000), y = rnorm(100000))
y <- data.frame(x = rnorm(1), y = rnorm(1))
microbenchmark::microbenchmark(rbind(x, y), rbind(y, x))
#> Unit: milliseconds
#>         expr      min       lq     mean   median       uq      max neval cld
#>  rbind(x, y) 4.077496 4.894125 7.351411 5.252737 7.218941 27.39923   100   a
#>  rbind(y, x) 3.385937 3.728124 6.426094 3.980144 5.643514 29.56971   100   a
1 голос
/ 04 февраля 2020

Ну, во-первых, порядок строк будет другим. rbind объединяет значения в порядке их появления в списке параметров.

Но причина ошибки, вероятно, более вероятна, чем при диспетчеризации метода S3. Функции в R могут вести себя по-разному в зависимости от class() первого параметра этой функции. Если вы запустите methods(rbind), вы увидите разные методы. В базе R без загрузки другого пакета это специальный метод rbind.data.frame. Так что, возможно, в вашем случае только один из x или y является data.frame. Если у вас загружены другие пакеты, у вас могут быть загружены дополнительные специальные версии rbind.

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