R の概観
2021-05-07
司馬博文
5/07/2021
6/05/2024
$
を持った構造体であり,Python の dictionary, Perl の hash table に似ている.$ は S3 の機能で,S4 は @ である.これはリストが本質的に R の実装の深いところに存在するデータ型だからである.
A Blog Entry on Bayesian Computation by an Applied Mathematician
$$
$$
R における行列 (matrix) は dim
属性を持ったベクトルであった.これと同様に,R におけるリストには names
属性があり,リストの各内容に名前をつける役割を持つ.そしてこの names
属性は$
を使ってアクセスできる.
R におけるすべてのオブジェクトは class
属性を持っている.S3 におけるすべてのオブジェクトは class
属性を持つリストとして実装されているためである.オブジェクトが関数に呼ばれた際は,このclass
属性の値を確認して,適切なメソッドが呼ばれる.
R.version
やhist()
の返り値などは,breaks
, counts
オプションを持ったリストである.これはarrtibutes()
あるいはstr()
あるいは直うち,またはclass
毎に誂えられた generic 関数であるprint()
やsummary()
で確認できる.
$names
[1] "platform" "arch" "os" "system"
[5] "status" "major" "minor" "year"
[9] "month" "day" "svn rev" "language"
[13] "version.string" "nickname"
$class
[1] "simple.list"
List of 14
$ platform : chr "aarch64-apple-darwin20"
$ arch : chr "aarch64"
$ os : chr "darwin20"
$ system : chr "aarch64, darwin20"
$ status : chr ""
$ major : chr "4"
$ minor : chr "4.0"
$ year : chr "2024"
$ month : chr "04"
$ day : chr "24"
$ svn rev : chr "86474"
$ language : chr "R"
$ version.string: chr "R version 4.4.0 (2024-04-24)"
$ nickname : chr "Puppy Cup"
- attr(*, "class")= chr "simple.list"
Length Class Mode
platform 1 -none- character
arch 1 -none- character
os 1 -none- character
system 1 -none- character
status 1 -none- character
major 1 -none- character
minor 1 -none- character
year 1 -none- character
month 1 -none- character
day 1 -none- character
svn rev 1 -none- character
language 1 -none- character
version.string 1 -none- character
nickname 1 -none- character
list(arg1,arg2,…)
name=arg1
とすると[[1]]
ではなく$name
という名前付きで list にできる.names(list) <- c(“name1”,”name2”)
:後からタグ付けで参照できる.L[[1]]
またはL$name
:要素の参照,次元が違うのに注意.
[1]
が行ベクトルを表す.それが[[1]]
, [[2]]
, ……と進んでく.$
で参照した場合は,最初の数文字で予測できれば省略可能.各要素がベクトルであるリストのこと.従って明らかに縦にベクトル構造を持つ.対称ではないのは数学と同じ.
data.frame(…, colname=vector, …)
row.names(df) <- vector
:行に名前をつける.names(df)
:すでについている名前
,
付きのオブジェクトで言及するとベクトルを得る.ベクトルオブジェクトで言及すると部分フレームを得る.(多分呼ばれてる関数が違う)
df[n]
:\(n\) 列目を data-frame 列として得る
df[n,]
:\(n\) 行目を data-frame 行として得る.df[,n]
:\(n\) 列目を data-frame 行として得る.subset(x)
:切り出して使う.df[-n]
:除外
df$Name
:列の名前で indexing して,必ずベクトルを得る.[,drop=TRUE]
:が隠れているので,これをFALSE
にして強制的にdf
を返すことができる.c(1,5)
の代わりにc(Month,Day)
で参照してもよく,$
の後と同様””
で String 型にする必要はない.