2013-04-22 25 views
23

Was ist der Unterschied zwischen der Verwendung von c() und append()? Gibt es irgendwelche?Unterschied zwischen c() und 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

'c' ist auch ein Primitiv mit mehreren S3-Methoden (siehe' Methoden ("c") ') – baptiste

Antwort

32

Die Art und Weise Sie es Unterschied zwischen c und append nicht zeigt benutzt habe. append ist in dem Sinne anders, dass es ermöglicht, dass Werte in einen Vektor nach einer bestimmten Position eingefügt werden.

Beispiel:

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 

Wenn Sie append in R Terminal eingeben, sehen Sie, dass es c() verwendet Werte anzuhängen.

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

Sie können sehen (das kommentierte Teil), dass standardmäßig (wenn Sie nicht after= wie in Ihrem Beispiel gesetzt haben), es gibt einfach c(x, values). c ist eine allgemeinere Funktion, die Werte an vectors oder lists verketten kann.

+2

+1 für die Quelle. Gibt immer mehr Einblick in R. – Nishanth

+0

'! Nach' ist TRUE ist' nach' ist 0, und sonst FALSE. Es hat nichts damit zu tun, ob es eingestellt ist oder nicht. – hadley

Verwandte Themen