Подтвердить что ты не робот

Разница между c() и append()

В чем разница между использованием 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
4b9b3361

Ответ 1

То, как вы его использовали, не показывает разницу между c и append. 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

Если вы наберете append в R-терминале, вы увидите, что он использует 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 - более общая функция, которая может конкатенировать значения до vectors или lists.