R言語続きで、データフレームです。
データフレームは、いわゆるRDBのテーブルみたいなものですね。Excelの表という覚え方でもいいかもしれません。
> a = c("あなご","いくら","うに") > b = c(200,300,400) > a [1] "あなご" "いくら" "うに" > b [1] 200 300 400 > dt = data.frame (a,b) > dt a b 1 あなご 200 2 いくら 300 3 うに 400 >
列アクセスは配列のように番号を指定します。
> dt[1] a 1 あなご 2 いくら 3 うに > dt[2] b 1 200 2 300 3 400 >
配列と似てるからといって、勝手に次元を増やしてアクセスできません。
> dt[1][1] a 1 あなご 2 いくら 3 うに >
列をベクトルで抽出するには、,(カンマ)を指定します。
> f1 = dt[,1] > f2 = dt[,2] > f1 [1] あなご いくら うに Levels: あなご いくら うに > f2 [1] 200 300 400 >
行を取り出すには、subset関数を使います。
> dt a b 1 あなご 200 2 いくら 300 3 うに 400 > subset(dt,b == 300) a b 2 いくら 300 >
> subset(dt,b < 350) a b 1 あなご 200 2 いくら 300 >
SQLのwhere節のようですね。
> subset(dt,b >= 300,select=a) a 2 いくら 3 うに >
列を増やしてみます。
> dt a b 1 あなご 200 2 いくら 300 3 うに 400 > name = dt[,1] > price = dt[,2] > qty = c(5,10,15) > dt = data.frame(name,price,qty) > dt name price qty 1 あなご 200 5 2 いくら 300 10 3 うに 400 15 >
priceが300以上のnameとqtyを抽出。
> subset(dt,price>=300,select=c(name,qty)) name qty 2 いくら 10 3 うに 15 >
コメント