连接向量,append() 与 c()

pop*_*tea 4 r

当连接两个向量,a并且b,在R,它在我看来,

append(a,b)
Run Code Online (Sandbox Code Playgroud)

c(a,b)
Run Code Online (Sandbox Code Playgroud)

产生相同的结果。是否有任何一种功能应该优先于另一种功能的情况?是append()用于列表操作而不是向量操作?

Ada*_*dam 8

看一下append()功能。基本上是添加after参数使它与众不同。一般来说,c()会更有效,因为它跳过了这一点逻辑。

function (x, values, after = length(x)) 
{
    lengx <- length(x)
    if (!after) 
        c(values, x)
    else if (after >= lengx) 
        c(x, values)
    else c(x[1L:after], values, x[(after + 1L):lengx])
}
Run Code Online (Sandbox Code Playgroud)

  • 完全正确。`append` 是一个命名错误的函数——它应该被称为 `insert`,并且一般不应该用于 *appending*(因为 `c` 的作用相同,而且效率更高),而应该仅在插入到 a 的中间时使用。向量。 (8认同)