gpt4 book ai didi

R rbind dataframes 返回一个列表

转载 作者:行者123 更新时间:2023-12-02 15:20:08 27 4
gpt4 key购买 nike

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

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

我正在尝试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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com