R rbind dataframes 返回一个列表

标签 r list dataframe rbind

我遇到了一个问题,并设法通过黑客解决了它,我希望了解这个问题并希望摆脱黑客。

我尝试重现这个问题,但没有成功,所以这里的文字就足够了。

我正在尝试rbind R 中的两个数据帧,其结果必须再次是数据帧,而不是列表。我用rbind在我的大多数脚本中,以前从未遇到过问题。

但是,今天我将 rbind 应用于两个数据帧,例如 foobar它返回了 list foobar 。我用来解决这个问题的技巧是强制转换 foobar再次到数据帧,如下所示:

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

谢谢!

最佳答案

如果您的数据帧之一实际上是 tibble ,则需要使用 dplyr::bind_rows() 而不是 rbind(),因为 dplyr::bind_rows() 是专门设计用于处理 tibbles(它通常也适用于数据帧)。由于 tibbles 是 tidyverse 的一项发明,它不一定与像 rbind() 这样的基本函数完全兼容(我自己并不知道会发生这种行为,直到你提出它)。

有关这两个函数之间的差异以及为什么您可能希望使用 dplyr::bind_rows() 而不是 rbind() 的更多信息,请参阅 here

关于R rbind dataframes 返回一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48211010/

相关文章:

元组列表时的 Python 3 : When to use dict,?

python - 一个类轮 : Find if string is in list of strings

python - 返回 pyspark GroupedData 中具有最佳字段的行

r - 矩阵索引中的负下标

r - R 正则表达式中的双冒号

PYTHON(2.7) : List comprehension - Adding(sum) numbers in a . 带有附加文本的 txt 文件

python - 如何查找二维数组的按列唯一元素及其频率

r - 删除另一个数据框中存在的行?

r - 在R中,如何计算流出/降水事件的累积和?

python - 按行删除每行列子集中的重复项,仅保留第一个副本,仅当每列都有相同的重复项时才按行