私は形式で汚れた大量のデータを持っている:R - GSUBを使用して置き換える文字列()
abc
abc/def
abc/de
abc/d
abc/def/i j k
abc/def/i
abc/def/i j
これは私が変更したいデータのほんの一部です。これははるかに大きなデータセットの一部です。
すべての要素をabc/def/i j k
に変更したいと思います。次のように Iはgsub()
関数を使用した:
gsub('abc[a-z/]', 'abc/def/i j k', str)
出力:
abc/def/i j k
abc/def/i j k/def
abc/def/i j k/de
abc/def/i j k/d
問題は、それがパターンの発生を置き換えることです。私はまともな十分な結果を得た
唯一の解決策はどこでハードコードこのようなすべての可能なオプションがされています。新しいデータにばらつきがある場合
gsub('abc$|abc/d$|abc/de$|abc/def/i$', 'abc/def/i j k', str)
しかし、これは動作しないでしょう。 私は、パラメータをハードコーディングせずに結果を得ることが可能かどうか疑問に思っていました。
以外0+文字をしている 'abc' /' def'プレースホルダ?さもなければ、 '^ abc [a-z /] * $'は 'sub'でも使えます。 –
正しく理解すれば、すべての要素を "abc/def"にしたいので、 'rep(" abc/def "、length(str))'を使うのはなぜですか? –
'sub("(abc)[/ az] * "、" \\ 1/def "、x)'または 'sub(" ^(abc)[/ az] * $ "、" \\ 1/def "、x)' –