c()和append()之间的区别

时间:2013-04-22 10:19:42

标签: r function

使用c()append()有什么区别?有没有?

> c(      rep(0,5), rep(3,2) )
[1] 0 0 0 0 0 3 3

> append( rep(0,5), rep(3,2) )
[1] 0 0 0 0 0 3 3

1 个答案:

答案 0 :(得分:39)

您使用它的方式并未显示cappend之间的差异。 append在某种意义上是不同的,它允许在某个位置之后将值插入到向量中。

示例:

x <- c(10,8,20)
c(x, 6) # always adds to the end
# [1] 10 8 20 6
append(x, 6, after = 2)
# [1] 10  8  6 20

如果您在R终端中输入append,则会看到它使用c()附加值。

# append function
function (x, values, after = length(x)) 
{
    lengx <- length(x)
    if (!after) 
        c(values, x)
    # by default after = length(x) which just calls a c(x, values)
    else if (after >= lengx) 
        c(x, values)
    else c(x[1L:after], values, x[(after + 1L):lengx])
}

默认情况下,您可以看到(注释部分)(如果您未在示例中设置after=),它只返回c(x, values)c是一个更通用的函数,可以将值连接到vectorslists