理学療法士がまとめたノート

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

データフレームからの抽出

例)ChickWeightからDietの1と3だけ抜き出す

subset(ChickWeight,subset = Diet==c(1,3))

例)iris アヤメ

head(iris,5)
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           5.1         3.5          1.4         0.2  setosa
2           4.9         3.0          1.4         0.2  setosa
3           4.7         3.2          1.3         0.2  setosa
4           4.6         3.1          1.5         0.2  setosa
5           5.0         3.6          1.4         0.2  setosa

Sepal.Length(へたの長さ)とSpecies(種)
2列のみを抽出したフレームにします

irisSL <- subset(iris,select = c(Sepal.Length, Species))
head(irisPW,5)

  Sepal.Length Species
1          5.1  setosa
2          4.9  setosa
3          4.7  setosa
4          4.6  setosa
5          5.0  setosa

つぎに列を種(3種類)にしてへたの長さを提示します

iun2 <- unstack(irisSL,formula = Petal.Width ~ Species)
head(iun2,10)

  setosa versicolor virginica
1    5.1        7.0       6.3
2    4.9        6.4       5.8
3    4.7        6.9       7.1
4    4.6        5.5       6.3
5    5.0        6.5       6.5

Sepal.Length(へたの長さ)とSpecies(種)の2列に戻します

x<-c(iun2$setosa,iun2$versicolor,iun2$virginica)
Species <- c(rep("setosa",50),rep("versicolor",50),rep("virginica",50))
xy <- data.frame(Sepal.Length=x, Species)

  Sepal.Length Species
1          5.1  setosa
2          4.9  setosa
3          4.7  setosa
4          4.6  setosa
5          5.0  setosa
6          5.4  setosa


irisのvirginicaだけを抜き出す方法

ise <- split(iris,iris[5])     #irisの5列目の項目で分割
head(ise$virginica)

    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
101          6.3         3.3          6.0         2.5 virginica
102          5.8         2.7          5.1         1.9 virginica
103          7.1         3.0          5.9         2.1 virginica
104          6.3         2.9          5.6         1.8 virginica
105          6.5         3.0          5.8         2.2 virginica
106          7.6         3.0          6.6         2.1 virginica



Sepal.Lengthの順に並べ換えます

Sepal.Lengthの昇順に並び替え
ise <- split(iris,iris[5])     #irisの5列目の項目で分割
isev <- ise$virginica
isevo <- isev[order(isev$Sepal.Length),]
head(isevo)

    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
107          4.9         2.5          4.5         1.7 virginica
122          5.6         2.8          4.9         2.0 virginica
114          5.7         2.5          5.0         2.0 virginica
102          5.8         2.7          5.1         1.9 virginica
115          5.8         2.8          5.1         2.4 virginica
143          5.8         2.7          5.1         1.9 virginica
````