トップ «前の日記(2012-09-02(Sun)) 最新 次の日記(2012-09-04(Tue))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2012-09-03(Mon) 朝と夕は既に秋

R 思いつくままに - 2 -

ゼロ除算でエラーにならない。

> foo <- function(num) {
+   print(10/num)
+   print("OK")
+ }
> foo(5)
[1] 2
[1] "OK"
> foo(0)
[1] Inf
[1] "OK"

Infは無限大らしい。NaN は非数値だそうである。

> Inf + 2
[1] Inf
> Inf * Inf
[1] Inf
> Inf/Inf
[1] NaN
> Inf - Inf
[1] NaN
> Inf / Inf
[1] NaN

数値型の他に、整数型もあるらしいが、どう違うのか あまりよく分からなかったり。

> foo = as.integer(10)
> bar = as.integer(3)
> foo / bar
[1] 3.333333
> foo %/% bar
[1] 3
> 10 / 3
[1] 3.333333
> 10 %/% 3
[1] 3
> int3 = as.integer(3)
> num3 = 3
> int3 == num3
[1] TRUE

class() はオブジェクトのクラス名を返す。

> ls()
[1] "bar" "foo"
> class("3 days")
[1] "character"
> class(100)
[1] "numeric"
> class(int3)
[1] "integer"
> class(num3)
[1] "numeric"

ゼロから数えないのだろうか。

> vect1 <- c(0:3)
> vect1
[1] 0 1 2 3
> vect1[0]
integer(0)
> vect1[3]
[1] 2
> vect1[1:4]
[1] 0 1 2 3
> vect1[1:5]
[1]  0  1  2  3 NA

ドキュメントによれば、"<-" は、 "In most contexts the ‘=’ operator can be used as an alternative." な由。また、 assign()も同様。

> assign("foo", 5:7)
> foo
[1] 5 6 7

ベクトル型は、同じ型のデータしか格納できないっぽい。

> bar <- c(TRUE, FALSE)
> bar
[1]  TRUE FALSE
> baz <- c(TRUE, FALSE, 3)
> baz
[1] 1 0 3
> qux <- c(TRUE, FALSE, "foo")
> qux
[1] "TRUE"  "FALSE" "foo" 

リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。