各要素が角かっこで囲まれている文字ベクトルがあります。角かっこを削除して、文字列だけを取得します。
だから私は試しました:
n = c("[Dave]", "[Tony]", "[Sara]")
paste("", n, "", sep="")
残念ながら、これは何らかの理由で機能しません。
この同じコードを使用する前に同じタスクを実行しましたが、今回はなぜ機能しないのかわかりません。
'[Dave]'
から'Dave'
に移動します。
何が悪いのですか?
あなたはそのように括弧をgsubすることができます:
n = c("[Dave]", "[Tony]", "[Sara]")
gsub("\\[|\\]", "", n)
[1] "Dave" "Tony" "Sara"
正規表現の置換がそれを行います。 gsub()関数を見てください。
これにより、必要なものが得られます( '['または ']'のインスタンスはすべて削除されます)。
gsub("\\[|\\]", "", n)
他の答えはあなたの望ましい出力を得るために十分でなければなりません。試してもうまくいかなかった理由を簡単に説明したいと思います。
paste
concatenates文字列。空の文字列をpaste
した場合、""
、空の文字列でもあるセパレータを含む何かに、あなたは本当に何も変更していません。したがって、paste
は文字列を短くすることはできません。結果は(例のように)同じか、より長くなります。
Tidyverse内で作業する場合:
library(tidyverse); library(stringr)
n = c("[Dave]", "[Tony]", "[Sara]")
n %>% str_replace_all("\\[|\\]", "")
[1] "Dave" "Tony" "Sara"