データフレームからの抽出
例)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 ````