Rを使ってみる4

最近は入門 機械学習を読みながら色々と学習しているところ。なお、このブログ記事によるとここにソースはあるらしく、さっき見たら実際に存在したので、どうにも進まなくなったら参照しようかと思う。例によって、私の属性(統計などは数学としては勉強したことがあるが、Rも含めてツールとして使ったことは無い、ITエンジニア)の人が躓きそうor初見の関数について記していくと…

この本の第5章の冒頭に次のようなコードがある。

# Original
> ggplot(ages, aes(x = AgeAtDeath, fill = factor(Smokes))) +
   geom_density() +
   facet_grid(Smokes ~ .)

通常のプログラミング言語に慣れていると、この各行の末尾にある"+"演算子を行頭に持っていきたくなるが、次のように書き換えるとエラーとなってしまう。

# NG
> ggplot(ages, aes(x = AgeAtDeath, fill = factor(Smokes)))
 +   geom_density()
 +   facet_grid(Smokes ~ .)
 以下にエラー +geom_density() :  単項演算子に対する引数が不正です 

どうもこのところ、Rには他の言語と比べてそれなりに柔軟性がある(無名関数の定義ができる等)と思えてきたものの、妙な癖があるとも思う…。

  • rbind

行方向の結合。例えば1 x Nと1 x Nの行ベクトルを結合して、2 x Nのデータを作成するのに使用する。行ベクトル同士でなくても良い。データフレームを結合することも可能。

> a <- c(1,2,3)
> b <- c(4,5,6)
> c <- rbind(a,b)
> c
  [,1] [,2] [,3]
a    1    2    3
b    4    5    6
> c <- rbind(c, b)
> c
  [,1] [,2] [,3]
a    1    2    3
b    4    5    6
b    4    5    6
  • print

他の言語のそれと同様に、データの内容を表示する。Rのコードを対話的に実行するのではなく、関数の中で値を表示するときなどに使用できる。

> print(c)
  [,1] [,2] [,3]
a    1    2    3
b    4    5    6
b    4    5    6

このブログを投稿すると、Twitterに投稿されて、それがFacebookにも流れこむようになっているのだが、TwitterFacebookとでは見ている人の属性に差があり(Facebookは非技術系の人も多い)、Twitterに投稿されたエントリをFacebookが読み込んだ時に、何らかの条件で出し分け(始めの何文字かに[tech]が入っていればFacebookには流さない)を自動で行う仕組みが無いかな〜と思っているのだが、そのようなものは無いだろうか?

これから大学時代のサークルの後輩の結婚式の2次会があるので、今日はここまで。