Siendo nuevo en R, por favor alguien puede explicar la diferencia entre paste() y paste0(), lo que yo había entendido de algunos de los post es que

paste0("a", "b") === paste("a", "b", sep="")

Incluso he intentado algo como esto

a <- c("a","b","c")
b <- c("y","w","q")
paste(a,b,sep = "_")
**output**
"a_y" "b_w" "c_q"

utilizando paste0()

a <- c("a","b","c")
b <- c("y","w","q")
paste0(a,b,sep = "_")
**output**
"ay_" "bw_" "cq_"

Es justo que paste() utiliza el separador entre los elementos y paste0() utiliza separador después de los elementos?

  • paste0 no tiene un sep parámetro. Trate de paste0(a,b,blabla = "_")
  • de ?paste: paste0(…, colapso) es equivalente a pegar(…, sep = «», colapso), ligeramente más eficiente.
  • uso paste en lugar de paste0 si desea utilizar un separador. Todo el propósito de la utilización de paste0 es con el fin de tener el separador predefinidos. Este es un clásico XY problema.
  • Bien esto es un poco claro..Gracias!
  • trinkerrstuff.wordpress.com/2013/09/15/… me escribió en su blog sobre el tema
  • alos, paste0 no ser correctamente interpretado por expression (prueba plot(0:1, 0:1, main=expression(paste(delta, "=3"))) y, a continuación,plot(0:1, 0:1, main=expression(paste0(delta, "=3"))))

InformationsquelleAutor deepesh | 2016-03-29

3 Comentarios

  1. 42

    Como se explica en este blog por Tyler Rinker:

    paste tiene 3 argumentos.

    paste (..., sep = " ", collapse = NULL) La ... es de las cosas que
    desea pegar juntos y la sep y colapso son los chicos que se
    hecho. Hay tres cosas básicas que me pegue juntos:

    • Un montón de carácter individual cadenas.
    • 2 o más cadenas pegado elemento por elemento.
    • Una cadena descompuesto juntos.

    He aquí un ejemplo de cada uno, aunque no con los argumentos correctos

    paste("A", 1, "%") #Un montón de carácter individual cadenas.

    paste(1:4, letters[1:4]) #2 o más cadenas pegado elemento para
    elemento.

    paste(1:10) #Una cadena descompuesto juntos. Aquí está el
    sep/colapso de la regla para cada uno de ellos:

    • Un montón de carácter individual cadenas – desea sep
    • 2 o más cadenas pegado elemento por elemento. – Quieres sep
    • Una cadena descompuesto juntos.- Smushin requiere colapso

    paste0 es la abreviatura de: paste(x, sep="") Lo que nos permite ser más perezoso
    y más eficientes.

    paste0("a", "b") == paste("a", "b", sep="") ## [1] TRUE

    • Este no es su blog. Por favor dar crédito donde es debido. Este es Tyler Rinkers blog y vinculó en los comentarios.
  2. 13

    En palabras simples,

    paste() es como la concatenación utilizando el factor de separación,
    considerando, que

    paste0() es como la función append utilizando el factor de separación.

    Añadir algunos más referencias a la discusión de arriba, a continuación trate de espera puede ser útil para evitar confusiones:

    > paste("a","b")  #Here default separation factor is " " i.e. a space
    
    [1] "a b"  
    
    > paste0("a","b") #Here default separation factor is "" i.e a null
    
    [1] "ab"
    
    > paste("a","b",sep="-")
    
    [1] "a-b"
    
    > paste0("a","b",sep="-")
    
    [1] "ab-"
    
    > paste(1:4,"a")
    
    [1] "1 a" "2 a" "3 a" "4 a"
    
    > paste0(1:4,"a")
    
    [1] "1a" "2a" "3a" "4a"
    
    > paste(1:4,"a",sep="-")
    
    [1] "1-a" "2-a" "3-a" "4-a"
    
    > paste0(1:4,"a",sep="-")
    
    [1] "1a-" "2a-" "3a-" "4a-"
  3. 6

    Me deja ponerlo en palabras simples.. paste0 excluirá automáticamente al espacio en su concatenación..

    Por Ejemplo, quiero crear un programa de Capacitación y prueba de ruta..aquí está el código..

    > Curr_date=format(Sys.Date(),"%d-%b-%y")
    
    > currentTrainPath = paste("Train_",Curr_date,".RData")
    
    > currentTrainPath
    
    [1] "Train_ 11-Jun-16 .RData"
    
    > Curr_date=format(Sys.Date(),"%d-%b-%y")
    
    > currentTrainPath = paste0("Train_",Curr_date,".RData")
    
    > currentTrainPath
    
    [1] "Train_11-Jun-16.RData"

Dejar respuesta

Please enter your comment!
Please enter your name here