列が次のように構成されている次のデータセットがあるとします。
df1 = data.frame(Date=c(rnorm(5)),
"United States) New York (NY" = c(rnorm(5)),
"United States) Chicago (Illinois" = c(rnorm(5)),
"United States) Denver (Colorado" = c(rnorm(5)),
"United States) Seattle (Washington" = c(rnorm(5)),
"United States) Minneapolis (Minnesota" = c(rnorm(5)), check.names=FALSE)
df1
df2 = data.frame(Date=c(rnorm(5)),
"New York (New York, United States)" = c(rnorm(5)),
"Phoenix (Arizona, United States)" = c(rnorm(5)),
"Chicago (Illinois, United States)" = c(rnorm(5)),
"Los Angeles (California, United States)" = c(rnorm(5)), check.names=FALSE)
df2
ご覧のとおり、各列は都市を表すことを意図していますが、列名の構造は扱いにくいものになっています。列名の文字列から都市名を抽出する方法を誰かが教えてくれるかどうか疑問に思っていました。
各都市の辞書を持っていて、文字列の照合を行うこともできましたが、うまくいきませんでした。また、str_split を使用してこれを行う方法があると想定しましたが、まだわかりません。
sapply(str_split(names(df1),")"), 2)
もちろん、gsub による解決策もあると思いますが、正規表現に関しては私は少し苦手です。
最終的には、実際の都市名を列名として表示したいだけです。
New York, Chicago, Denver, Seattle, Minneapolis