Rの文字列分割のオプションについて質問したいのですが、私の知る限り、3つのオプションが見えます。strsplit()
ベースでstr_split()
、stringr
パッケージseparate()
で、tidy
パッケージで。それらはプログラミングの観点からどのように異なるのだろうか。私はプログラマーとしての訓練を受けていないので、この文章は明確でないかもしれません。例を挙げましょう。以前、パッケージでrbind()
との違いを学びました。( rbindlist が rbind よりも「優れている」のはなぜですか? )。これは私にとって大きな学びでした。とに関連するこの投稿のように、どの文字列オプションが他のものよりも優れているかを知りたいです。この例が私が尋ねようとしていることを明確にしてくれることを願っています。お時間をいただきありがとうございます。rbindlist()
data.table
rbind()
rbindlist()
1 に答える
1
strsplit() および str_split() とは異なり、separate はデータ フレームを取得し、データ フレームの個別の列に出力を配置します。str_split を使用すると、任意の分割で返される文字列の最大数を指定できます。
文字列を分割する方法はいくつかあります (特定の状況では、substr や grep を使用できます)。大規模なデータについては、この投稿の回答を検討してください: data.table 列のテキスト文字列を分割する
ここにいくつかのベンチマーク結果を示します。独自の結果を作成できます。
require(microbenchmark)
require(stringr)
require(tidyr)
require(data.table)
dt<-data.table(a=letters[1:20],b=letters[15:21],c=1:100)
dt[,d:=paste(a,b,sep=".")]
this<-dt[,d]
microbenchmark(strsplit(this,"[.]"),str_split(this,"[.]"),separate(dt,"d",c("e","f"),"[.]"))
# Unit: microseconds
# expr min lq median uq max neval
# strsplit(this, "[.]") 53.432 56.753 59.4705 62.941 103.846 100
# str_split(this, "[.]") 4390.459 4878.137 5020.0180 5118.127 6598.367 100
# separate(dt, "d", c("e", "f"), "[.]") 165.126 178.107 189.7290 232.142 299.460
于 2014-08-14T07:25:39.397 に答える