Différence entre pâte () et paste0()
étant nouveau à R, est-ce que quelqu'un peut expliquer la différence entre paste()
et paste0()
, ce que j'avais compris de certains post, c'est que
paste0("a", "b") === paste("a", "b", sep="")
Même j'ai essayé quelque chose comme ceci
a <- c("a","b","c")
b <- c("y","w","q")
paste(a,b,sep = "_")
**output**
"a_y" "b_w" "c_q"
en utilisant paste0()
a <- c("a","b","c")
b <- c("y","w","q")
paste0(a,b,sep = "_")
**output**
"ay_" "bw_" "cq_"
Est-il juste que paste()
utilise le séparateur entre les éléments et paste0()
utilise le séparateur après les éléments?
3 réponses
Comme expliqué dans ce blog par rem Rinker:
paste
a 3 arguments.
paste (..., sep = " ", collapse = NULL)
...
est la chose que vous vous voulez coller ensemble et sep et collapse sont les gars pour l'obtenir faire. Il y a trois choses de base que je colle ensemble:
- un tas de chaînes de caractères individuelles.
- 2 ou plus cordes élément collé pour élément.
- une ficelle écrasée ainsi.
voici un exemple de chacun, mais pas avec les bons arguments
paste("A", 1, "%")
#un tas de chaînes de caractères individuelles.
paste(1:4, letters[1:4])
#2 ou plus cordes élément collé pour élément.
paste(1:10)
#Une chaîne smushed ensemble. Voici l' règle de SEP / collapse pour chacun:
- un tas de chaînes de caractères individuelles – vous voulez sep
- 2 ou plus les chaînes élément collé à l'élément. - Vous voulez sep!--20-->
- une corde s'est brisée.- Le Smushin doit s'effondrer!--20-->
paste0
est l'abréviation de:paste(x, sep="")
elle nous permet d'être plus et plus efficace.
paste0("a", "b") == paste("a", "b", sep="") ## [1] TRUE
Dans des mots simples,
paste()
est comme la concaténation en utilisant le facteur de séparation,
alors que,
paste0()
est comme une fonction d'ajout utilisant un facteur de séparation.
ajout de quelques références supplémentaires à la discussion ci-dessus, les essais ci-dessous peuvent être utiles pour éviter la confusion:
> 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-"
Permettez-moi de le dire en des mots simples.. paste0
exclura automatiquement de l'espace dans votre concaténation..
par exemple, je veux créer un chemin D'entraînement et de test..voici le code..
> 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"