No.23051 R 文字列の連結  【明石】 2021/03/05(Fri) 10:03

青木先生 様;

お忙しいところを失礼いたします,明石と申します。

毎々,ご丁寧なご教示をいただき,誠にありがとうございます。
改めて御礼を申し上げます。

今回は,文字列の連結について,ご教示をいただければ助かります。

----------------------------------------

2つの文字列ベクトルがあります。
v1 <- c("春", 夏"", "秋", "冬")
v2 <- c("GO", "notGO")

この2つの文字列ベクトルを連結して,以下を作成したいと思います。

"春_GO" "春_notGO" "夏_GO" "夏_notGO" "秋_GO" "秋_notGO" "冬_GO" "冬_notGO"

paste(v1, v2, sep"_"),expand.grid()関数を使う方法も試してみましたが,
所望するものではありません。

結局,二重ループを回して,要素を順に取り出して連結しました。

便利な関数があれば,教えていただけましたら助かります。
お手数をおかけいたします。
//

No.23052 Re: R 文字列の連結  【aoki】 2021/03/05(Fri) 21:24

ここまで来るともはやパズル?

以下の二通りの解を見つけましたが...
> v1 <- c("春", "夏", "秋", "冬")
> v2 <- c("GO", "notGO")
> c(t(outer(v1, paste0("_", v2), paste0)))
[1] "春_GO" "春_notGO" "夏_GO" "夏_notGO" "秋_GO" "秋_notGO" "冬_GO" "冬_notGO"
> c(t(outer(v1, v2, paste, sep="_")))
[1] "春_GO" "春_notGO" "夏_GO" "夏_notGO" "秋_GO" "秋_notGO" "冬_GO" "冬_notGO"

No.23053 御礼(Re: R 文字列の連結)  【明石】 2021/03/06(Sat) 10:02

青木先生 様;

お忙しいところを失礼いたします,明石と申します。

今回も,大変によい勉強をさせていただきました。
ありがとうございました。

青木先生にお聞きすることで,毎回,Rの素晴らしさに触れることができます。

私は,Rとパイソンの両刀使いですが,Rは神さまがくれた幸せな時間です。
R〜パイソンの連携がうまくいかない場合には,パイソンを使います。

青木先生から教えていただいたことが多くあり,感謝に堪えませんが,
特に,charmatch()関数を用いた突合せ処理は,とてもとても重宝しています。

Rのベクトル処理の真骨頂だと思っています。
このテクニックを,多くの人に知っていただきたいと思っています。
ありがとうございました。
//

● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る