問題タブ [stringi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1100 参照

regex - gsub 速度 VS パターン長

私はgsub最近広範囲に使用しており、短いパターンは長いパターンよりも速く実行されることに気付きましたが、これは当然のことです。完全に再現可能なコードは次のとおりです。

aご覧のとおり、複製された時間を含むパターンを探していますrpt[n]。傾きは予想通り正です。fixed=Tただし、300 文字と 600 文字のねじれに気付き、fixed=F傾斜はほぼ以前と同じように見えます (以下のプロットを参照)。メモリやオブジェクト サイズなどが原因だと思います。また、許容される最長patternシンボルは 1463 シンボルで、オブジェクト サイズは 1552 バイトであることに気付きました。

300 文字と 600 文字で、キンクをよりよく説明できる人はいますか?

文字単位のパターン長の関数としてオン/オフが固定された、ミリ秒単位の gsub 速度

追加: 私のパターンのほとんどは 5 ~ 10 文字の長さであり、実際のデータ (inp上記の例のモックアップではありません) で次のタイミングが得られることに注意してください。

(私は 4k パターンを持っているので、モジュールの合計タイミングは約 200 秒です。これは、gsub と fixed = TRUE で正確に 0.05 x 4000 です。これは私のデータとパターンにとって最速の方法です)

実際のデータのタイミング

0 投票する
6 に答える
11503 参照

r - アーカイブから stringi ライブラリをインストールし、ローカルの icu52l.zip をインストールする方法

実稼働環境でいくつかの R コードを機能させることを試みており、その一環として、次のようにいくつかの R パッケージをインストールしています。

これは R パッケージをインストールする最もエレガントな方法ではないかもしれませんが、私たちにとっては問題ないようです (R パッケージ管理に関する他のヒントは歓迎されますが、この段階では少し遅れます :)。

ただし、stringi パッケージは、ネットワーク経由でインストールされる icu52l パッケージに依存しているようです。

ローカル コピーを探すように指示するにはどうすればよいでしょうか。出力には、リモートの場所 ( http://static.rexamine.com/packages/icudt52l.zip ) が簡単に含まれているため、自分でどこかに置くことができますが、どこにあるかは不明です。

たぶん、私たちはこれを完全に間違った方法で行っているかもしれませんが、どんな助けや指針も歓迎します.

私たちはubuntuマシンを使用しており、libicu42とlibicu-devのインストールも試みましたが、どちらも役に立たないようです。

0 投票する
1 に答える
499 参照

r - R の data.table の stri_split_fixed

次のようなdata.tableDTがあります。

V2「<<」で列を分割し、2 つの新しい列で出力を取得しようとしています。

次のように使用してそれを行うことができましたstringi

:=ただし、演​​算子を使用して参照することで同じことをしたいと思います。data.table を使用してこれを行う方法は?

RHSの部分に問題があります。

stri_split_fixed(DT$V2, "<<", 2)長さ 2 の文字ベクトルを持つ 3 つのリストを返します。長さ 3 の文字ベクトルを持つ 2 つのリストを取得するにはどうすればよいですか?

0 投票する
2 に答える
1166 参照

r - 辞書内の単語の値に基づいて文のスコアを取得する

編集 dfし、dict

文を含むデータフレームがあります:

そして、単語とそれに対応するスコアを含む辞書:

df各文のスコアを合計する列「スコア」を追加したい:

予想された結果

アップデート

これまでの結果は次のとおりです。

アクランのメソッド

提案 1

このメソッドが機能するためにはdata_frame()、作成するために使用する必要がdfありdictdata.frame()それ以外の場合は次のようになることに注意してください。Error in strsplit(text, " ") : non-character argument

これは、1 つの文字列での複数の一致を考慮していません。期待される結果に近いですが、まだ十分ではありません。

提案 2

コメントで akrun の提案の 1 つを少し調整して、編集した投稿に適用しました

これは、文字列内の複数の一致を考慮していません。

リチャード・スクリヴェンの方法

提案 1

すべてのパッケージを更新した後、これは機能するようになりました (ただし、複数の一致は考慮されません)。

提案 2

これにより、同じ結果が得られます。

提案 3

これは実際に機能します:

Thelatemail の方法

部分を追加したことに注意してくださいcbind()。これは実際に期待される結果と一致します。

最終的な答え

akrun の提案に触発されて、これが私が最終的に最もdplyr風変わりな解決策として書いたものです。

最も効率的であるため、Richard Scriven の提案 #3 を実装します。

基準

を使用して、はるかに大きなデータセット ( df93 文とdict14K 単語) に適用される提案を次に示しmicrobenchmark()ます。

そして結果:

ここに画像の説明を入力

0 投票する
1 に答える
951 参照

regex - Rの文字ベクトルのすべての要素でダッシュをドットに置き換える方法は?

Rの文字ベクトルのすべての要素でダッシュをドットに置き換える簡単な方法はありますか?

パッケージでヘルプを探していましstringiたが、答えが見つかりませんでした。機能はありstri_substituteますが、使い方がわかりません。

0 投票する
2 に答える
69 参照

regex - Rのstri_regexでpropoer情報を抽出するために使用する正規表現はどれですか?

gdac.broadinstitute.org_Rでその文字のこの単語の後に来る名前を抽出しようとしています

stri_extractパッケージから使用してstringiいますが、正規表現についてあまり知らないようです。私はこのようなことを試しました:

誰でも助けることができますか?

0 投票する
1 に答える
100 参照

r - Rで「^」に基づいて文字列を分割する

前にすべての文字を分割して取得する必要があります^

例:データフレームに次の列があります

同じデータフレームの結果列は次のようになります。

stringrstrsub{base}stringi、を使ってみgsubfnました。しかし、彼らは奇妙な結果を投げてい^ます。^ただテーブルが大きいので 交換できません。

0 投票する
2 に答える
412 参照

r - stringi と gsub を使用した異なる出力 (同じ文字列で同じパターンを使用)

gsub と stringi を使用して 2 つの異なる出力文字列を取得する理由を知りたいです。メタ文字「。」stringi に改行を含めませんか? stringi は「行ごと」に読み取りますか?

ちなみに、stringi で「正しい」置換を実行する方法が見つからなかったため、ここでは gsub を使用する必要がありました。