[R]メンバーシップテスト

R でメンバーシップテストを行う。

ふとやってみたくなったので、リファレンス片手にやってみた。
集合型データ構造はRにはデフォルトでは用意されていないようだ。
やるならベクトル/リスト系データ型を利用するのが自然かなと以下のようにやってみた。

vec <- vector()
for (x in unlist(strsplit("abracadabra", NULL))) {
  if (! x %in% vec) {
    vec <- append(vec, x)
  }
}
print (vec)

[1] "a" "b" "r" "c" "d"

メンバーシップテストには %in% を利用する。微妙だ、、、
今回は文字列の配列への変換を次のようにしておこなった。

unlist(strsplit(word, NULL))

“set: Sets, Generalized Sets, Customizable Sets and Intervals” パッケージを利用すると、次のようになる。

require(set)
s <- set()
for (x in unlist(strsplit("abracadabra", NULL))) {
  if (! x %in% s) {
    s <- s + x
  }
}
print (s)

{"a", "b", "c", "d", "r"}
Advertisements
Tagged with: , , , ,
Posted in R
One comment on “[R]メンバーシップテスト
  1. foo says:

    > unique(unlist(strsplit(“abracadabra”, NULL)))
    [1] “a” “b” “r” “c” “d”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
  • RT @__apf__: How to write a research paper: a guide for software engineers & practitioners. docs.google.com/presentation/d… /cc @inwyrd 4 months ago
  • RT @HayatoChiba: 昔、自然と対話しながら数学に打ち込んだら何かを悟れるのではと思いたち、専門書1つだけ持ってパワースポットで名高い奈良の山奥に1週間籠ったことがある。しかし泊まった民宿にドカベンが全巻揃っていたため、水島新司と対話しただけで1週間過ぎた。 それ… 5 months ago
  • RT @googlecloud: Ever wonder what underwater fiber optic internet cables look like? Look no further than this deep dive w/ @NatAndLo: https… 5 months ago
  • @ijin UTC+01:00 な時間帯で生活しています、、、 10 months ago
  • RT @mattcutts: Google's world-class Site Reliability Engineering team wrote a new book: amazon.com/Site-Reliabili… It's about managing produc… 1 year ago
%d bloggers like this: