【发布时间】:2018-06-21 00:22:39
【问题描述】:
我遇到了一个问题,并设法通过 hack 解决了它,我希望了解问题并希望摆脱 hack。
我尝试重新创建问题无济于事,所以这里的文字就足够了。
我正在尝试rbind R 中的两个数据框,其结果必须再次是数据框,而不是列表。我在大部分脚本中都使用rbind,以前从未遇到过问题。
但是,今天我将 rbind 应用于两个数据帧,例如 foo 和 bar,它返回了 list foobar。我用来解决此问题的技巧是强制将foo 和bar 转换为数据帧再次,如下所示:
rbind(data.frame(foo), data.frame(bar))
这行得通,但我想知道为什么当foo 和bar 都已经是data.frames 时我必须显式转换它。
我的问题是,当两个输入都是 data.frames 时,rbind 在什么“一般”场景下会返回 list?
我尝试通过查看rbind(A,A) 和rbind(B,B) 对其进行调试。两次它都返回一个数据帧而不是一个list。那为什么rbind(A,B) 会返回list?
谢谢!
【问题讨论】:
-
很难说没有
foo和bar -
它对我有用。确保你有相同的变量名。
-
@patL 当你没有看到 OP 的实际数据时,你怎么知道它对你有用?
-
我在想 foo 和 bar 实际上不是数据帧,可能是向量列表或列表中的数据帧。请为我们
dput这些对象。 -
由于这对未来的读者没有帮助,只是简单地忽略了您的环境,因此可能需要删除它。