web-dev-qa-db-fra.com

Différence entre c() et append ()

Quelle est la différence entre l'utilisation de c() et append()? Y a-t-il?

> 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
31
mreq

La façon dont vous l'avez utilisé ne montre pas de différence entre c et append. append est différent dans le sens où il permet d'insérer des valeurs dans un vecteur après une certaine position.

Exemple:

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

Si vous tapez append dans le terminal R, vous verrez qu'il utilise c() pour ajouter des valeurs.

# 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])
}

Vous pouvez voir (la partie commentée) que par défaut (si vous ne définissez pas after= Comme dans votre exemple), il retourne simplement c(x, values). c est une fonction plus générique qui peut concaténer des valeurs en vectors ou lists.

41
Arun