R ベクターの取り扱い

UB3/informatics/r/vector

このページの最終更新日: 2024/09/30

  1. 概要: R のベクターとは
  2. ベクターから文字列を削除する
  3. ベクターから条件に合う要素を抽出する
  4. ベクターから文字列を抽出する
  5. ベクターの要素に文字列を追加する
  6. ベクターの順番を指定する
  7. 2 つのベクターが同一か判定する
  8. ベクターの属性

別ページ


広告

概要: R のベクターとは

更新予定。関連ページとして データフレームの取り扱い がある。

ベクターから文字列を削除する

要素の番号で削除する

[ ] の中に、マイナス記号と要素の番号を入れる。

example_vec <- c("a", "b", "c", "d", "e")
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 <- c("a", "b", "c", "d", "e")
example_vec <- example_vec[-which(example_vec %in% c("a", "d"))]
example_vec
[1] "b" "c" "e"

指定した文字列 以外 を削除するときは、! を利用する。

example_vec <- c("a", "b", "c", "d", "e")
example_vec <- example_vec[-which(!example_vec %in% c("a", "d"))]
example_vec
[1] "a" "d"

要素の最初・最後の文字を削除する

それぞれの要素の最後の文字を削除したい場合は、substr() 関数を使う。1 番目の文字から、文字数マイナス 1 番目の文字までを含めるという書き方。

example_vec <- c("abc", "def", "ghi")
modified_vec <- substr(example_vec, 1, nchar(example_vec) - 1)

ベクターから文字列を抽出する

このページ にあるように、str_ の関数を使うのが良さそう。とりあえず使ったものだけメモ。

str_sub(vec, start = 1, end = 5) # 前から 1 - 5 文字目を抽出
str_sub(vec, start = -5, end = -1) # 後ろから 1 - 5 文字目を抽出

後ろから数えるときはマイナスをつける。start のみ、end のみを指定すると、指定しなかった側では全ての文字が抽出されるようである。

ベクターから条件に合う要素を抽出する

更新予定。

ベクターの要素に文字列を追加する

paste() 関数を用いる。sep = "" で、追加文字列との間にスペースを入れない指定をしている。paste0() を使えばこれは不要である。

A <- c("B", "C")
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 個になれば、二つのベクターの要素は同一である。ただし、この方法だと ベクターの順番が同じかどうかわからない ので注意。

C <- intersect(A, B)

差分を取り出す setdiff() 関数でもよい。ただしこれは A マイナス B という形になるので、順番を変えてどちらも差分ゼロ character(0) になることを確認する必要がある。ただし、これも要素の順番が違っていても差分ゼロになってしまうので、ベストの方法とは言えない。

setdiff(A, B)
character(0)
setdiff(B, A)
character(0)

identical() 関数を使うのが良さそうである。TRUE または FALSE が返ってくる。

identical(A, B)

ベクターの属性

comment() 関数でベクターに comment という属性をつけることができる。

names() 関数で、ベクターの個々の値に属性をつけることができる。attributes や attr 関数で、属性を見たり変更したりできる。詳細は このページ に。


広告

References

  1. R 文字列ベクトルで文字列を指定して要素を削除する方法.Link: Last access 2022/09/21.
  2. Rで解析:文字列操作と検索「grep」と置換「gsub」コマンドの紹介.Link: Last access 2022/09/22.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。