web-dev-qa-db-ja.com

paste()とpaste0()の違い

Rが初めてなので、誰かがpaste()paste0()の違いを説明してもらえますか、ある投稿から理解したことは

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

私もこのようなことを試してみました

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

paste0()を使用

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

paste()は要素間にセパレーターを使用し、paste0()は要素の後にセパレーターを使用するだけですか?

35
deepesh

説明したように このブログではタイラー・リンカーによる

pasteには3つの引数があります。

paste (..., sep = " ", collapse = NULL)...が一緒に貼り付けたいものであり、sepとcollapseはそれを成し遂げる人です。貼り付ける基本的なものは3つあります。

  • 個々の文字列の束。
  • 要素に要素を貼り付けた2つ以上の文字列。
  • 1つの文字列が一緒に押しつぶされました。

正しい引数ではありませんが、それぞれの例を次に示します

paste("A", 1, "%")#個々の文字列の束。

paste(1:4, letters[1:4])要素に要素を貼り付けた#2個以上の文字列。

paste(1:10)#1つの文字列が一緒に押しつぶされました。それぞれのsep/collapseルールは次のとおりです。

  • 個々の文字列の束-あなたは9月が欲しい
  • 要素に要素を貼り付けた2つ以上の文字列。 –セプが欲しい
  • 1本の紐がくっついた。-スムシンは崩壊が必要

paste0は以下の略です:paste(x, sep="")したがって、より怠で効率的になります。

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

42
SriniV

簡単に言えば、

paste()は分離係数を使用した連結に似ていますが、

paste0()は、分離係数を使用した追加機能に似ています。

上記の議論にいくつかの参照を追加し、以下の試用は混乱を避けるために役立ちます。

> 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-"
13

簡単な言葉で言いましょう。paste0は、連結内のスペースを自動的に除外します。

たとえば、トレーニングとテストパスを作成します。ここにコードがあります。

> 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"
6
Karthi V