R ベクターの取り扱い
UB3/informatics/r/vector
このページの最終更新日: 2024/11/10- 概要: R のベクターとは
- ベクターから文字列を削除する
- ベクターから条件に合う要素を抽出する
- ベクターから文字列を抽出する
- ベクターの要素に文字列を追加する
- ベクターの順番を指定する
- 2 つのベクターが同一か判定する
- ベクターの属性
別ページ
広告
概要: R のベクターとは
更新予定。関連ページとして データフレームの取り扱い がある。
ベクターから文字列を削除する
要素の番号で削除する
[ ] の中に、マイナス記号と要素の番号を入れる。
example_vec <- example_vec[-3]
example_vec
[1] "a" "b" "d" "e"
文字列を指定して削除する
which 関数を使うので、少しややこしい。select 関数 を使いたいところだが、これはデータフレーム用なので、no applicable method for 'select' applied to an object of class "character" というエラーになる。
指定した文字列を削除する場合は以下のようにする。
example_vec <- example_vec[-which(example_vec %in% c("a", "d"))]
example_vec
[1] "b" "c" "e"
指定した文字列
example_vec <- example_vec[-which(!example_vec %in% c("a", "d"))]
example_vec
[1] "a" "d"
要素の最初・最後の文字を削除する
それぞれの要素の最後の文字を削除したい場合は、substr() 関数を使う。1 番目の文字から、文字数マイナス 1 番目の文字までを含めるという書き方。
modified_vec <- substr(example_vec, 1, nchar(example_vec) - 1)
ベクターから文字列を抽出する
このページ にあるように、str_ の関数を使うのが良さそう。とりあえず使ったものだけメモ。
str_sub(vec, start = -5, end = -1) # 後ろから 1 - 5 文字目を抽出
後ろから数えるときはマイナスをつける。start のみ、end のみを指定すると、指定しなかった側では全ての文字が抽出されるようである。
ベクターから条件に合う要素を抽出する
更新予定。
ベクターの要素に文字列を追加する
paste() 関数を用いる。sep = "" で、追加文字列との間にスペースを入れない指定をしている。paste0() を使えばこれは不要である。
A_added <- paste(A, ".add", sep = "")
# paste0() を使う場合
A <- c("B", "C")
A_added <- paste0(A, ".add")
ベクターの順番を指定する
順番を逆にする
rev() 関数を使う。単純に rev(ベクター) でよい。
2 つのベクターが同一か判定する
共通する値を取り出す intersect() を使える。A, B の要素がどちらも 1,000 個あるとして、C の要素が 1,000 個になれば、二つのベクターの要素は同一である。ただし、この方法だと
差分を取り出す setdiff() 関数でもよい。ただしこれは A マイナス B という形になるので、順番を変えてどちらも差分ゼロ character(0) になることを確認する必要がある。ただし、これも要素の順番が違っていても差分ゼロになってしまうので、ベストの方法とは言えない。
character(0)
setdiff(B, A)
character(0)
identical() 関数を使うのが良さそうである。TRUE または FALSE が返ってくる。
ベクターの属性
comment() 関数でベクターに comment という属性をつけることができる。
names() 関数で、ベクターの個々の値に属性をつけることができる。attributes や attr 関数で、属性を見たり変更したりできる。詳細は このページ に。
広告
References
- R 文字列ベクトルで文字列を指定して要素を削除する方法.Link: Last access 2022/09/21.
- Rで解析:文字列操作と検索「grep」と置換「gsub」コマンドの紹介.Link: Last access 2022/09/22.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。