r正規表現:文字列リスト全体をより具体的な情報に置き換える
質問
"Q7", "Q2"
などの要素を持つカテゴリカル変数を持つデータがある場合は、"7 Queen", "2 Queen"
などに置き換える方法をどのように置き換えますか?
解決
スターターには、あなたがすでに試したことのためのコードも含まれている場合に質問するのを最大限に引き出すことができます。それが言った...
大規模なデータセットにとってこの問題を解決するための最も効率的な方法ではありませんが、これら2つの方法はあなたの例で正当に機能するようです。example(strsplit)
は、私たちが使用することができる素晴らしい文字列 - 反転関数を持っています。
> strReverse <- function(x)
sapply(lapply(strsplit(x, NULL), rev), paste, collapse = "")
> strg <- c("Q7", "Q2")
> GS <- gsub("Q", strReverse(" Queen"), strg)
> strReverse(GS)
[1] "7 Queen" "2 Queen"
.
別の方法はpaste
> S <- paste0(strReverse(strg), "ueen")
> gsub("Q", " Q", S)
[1] "7 Queen" "2 Queen"
. 他のヒント
regex
(Q)(\d)
.
regex
を置き換えます$2 Queen
.
1st Capturing group (Q)
Q matches the character Q literally (case insensitive)
2nd Capturing group (\d)
\d match a digit [0-9]
g modifier: global. All matches (don't return on first match)
i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
.
所属していません StackOverflow