我试图找到函数rbind.data.frame
的文档,以了解以下函数调用的作用(在https://stackoverflow.com/a/4227483/3999893中找到):
rbind.data.frame(list(a=1, b=2), list(a=3, b=5), list(a=5, b=15))
但使用?rbind.data.frame
仅为rbind提供了不透明的帮助。
rbind.data.frame
是某种方法引导,还是根本没有该方法的文档?
答案 0 :(得分:4)
rbind
是通用的,但在您输入时没有显示rbind.default
方法:
methods(rbind)
相反,当您在控制台上键入rbind
时,您会看到:
function (..., deparse.level = 1)
.Internal(rbind(deparse.level, ...))
<bytecode: 0x100e55f20>
<environment: namespace:base>
因此,仅对pkg:base中的数据帧实现rbind
是不正确的。相反,会调用.Internal(rbind(deparse.level, ...)
。然后.Internal(rbind(..))
函数的逻辑取代了通常的S3逻辑,因此可以检查参数列表中的任何项是否为data.frames。如果没有,那么它继续处理原子矢量和矩阵。例如,在我的机器上,我看到列出了4种方法:
methods(rbind)
[1] rbind.data.frame rbind.matrix.csr rbind.Predict*
[4] rbind.zoo*
说rbind.data.frame
仅适用于数据帧也是不精确的。更精确的是在?rbind
的详细信息部分的第二句中使用该语言。并实际阅读约书亚现在提醒我们所有人阅读的帮助页面的其余部分。
缺少rbind.default
与处理S3泛型函数的常用方法不同。我检查过的大多数S3-generics都有*.default
种方法。有些像plot.default
这样的人甚至有自己的帮助页面。
最后,我不知道为什么rownames会像原始问题那样出现。
答案 1 :(得分:1)
rbind
是一个通用函数,rbind.data.frame
是适用于数据框的此函数的版本。
如果您对数据框执行了rbind
,那么您将rbind.data.frame
。
据推测,不同的对象可以应用不同的rbind
函数。
更多信息:
http://www.burns-stat.com/pages/Tutor/R_inferno.pdf - 看看第7章的开头
我认为您只看到rbind
的帮助的原因是rbind
目前仅针对基础R中的数据框实现,因此rbind
== { {1}}。