Я столкнулся с проблемой, и мне удалось решить ее с помощью взлома, и я хочу понять проблему и, надеюсь, избавиться от взлома.
Я пытался воссоздать проблему безрезультатно, поэтому слов здесь будет достаточно.
Я пытаюсь rbind
два фрейма данных в R, результатом чего снова должен быть фрейм данных, а не список. Я использую rbind
в большинстве своих скриптов, и раньше у меня никогда не было проблем.
Однако сегодня я применил rbind к двум кадрам данных, скажем, foo
и bar
, и он вернул list
foobar
. Хак, который я использую, чтобы исправить это, заключается в принудительном преобразовании foo
и bar
в кадры данных снова следующим образом:
rbind(data.frame(foo), data.frame(bar))
Это работает, но я хотел бы знать, почему я должен преобразовывать его явно, когда и foo
, и bar
уже являются data.frames.
Тогда мой вопрос заключается в том, в каких «общих» сценариях rbind
будет возвращаться list
, когда оба входа являются data.frames?
Я попытался отладить его, посмотрев на rbind(A,A)
и rbind(B,B)
. Оба раза он возвращает кадр данных, а не list
. Почему тогда rbind(A,B)
возвращает list
?
Спасибо!
foo
иbar
- person bouncyball   schedule 11.01.2018dput
эти объекты для нас. - person Parfait   schedule 11.01.2018bar
был data.frame, но на самом деле этоtibble
... что для меня совершенно новое! закрыть вопрос?? Спасибо за помощь - person gmarais   schedule 11.01.2018dplyr::bind_rows()
вместоrbind()
? Это может решить вашу конкретную проблему. - person Phil   schedule 11.01.2018foo
илиbar
не являются гарантированными кадрами данных. Я с радостью приму его, поскольку он «решает» мою проблему. - person gmarais   schedule 11.01.2018