2

Rの文字列分割のオプションについて質問したいのですが、私の知る限り、3つのオプションが見えます。strsplit()ベースでstr_split()stringrパッケージseparate()で、tidyパッケージで。それらはプログラミングの観点からどのように異なるのだろうか。私はプログラマーとしての訓練を受けていないので、この文章は明確でないかもしれません。例を挙げましょう。以前、パッケージでrbind()との違いを学びました。( rbindlist が rbind よりも「優れている」のはなぜですか? )。これは私にとって大きな学びでした。とに関連するこの投稿のように、どの文字列オプションが他のものよりも優れているかを知りたいです。この例が私が尋ねようとしていることを明確にしてくれることを願っています。お時間をいただきありがとうございます。rbindlist()data.tablerbind()rbindlist()

4

1 に答える 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 に答える