準備
library(dplyr) # ライブラリの読み込み
head(iris) # データの確認
## 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
## 6 5.4 3.9 1.7 0.4 setosa
filter(data, 条件)
dat.filter <- filter(iris, Species == "setosa")
head(dat.filter)
## 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
## 6 5.4 3.9 1.7 0.4 setosa
arrange(data, 指定列) :昇順
arrange(data, desc(指定列)) :降順
dat.arr <- arrange(iris, Sepal.Length)
head(dat.arr)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 4.3 3.0 1.1 0.1 setosa
## 2 4.4 2.9 1.4 0.2 setosa
## 3 4.4 3.0 1.3 0.2 setosa
## 4 4.4 3.2 1.3 0.2 setosa
## 5 4.5 2.3 1.3 0.3 setosa
## 6 4.6 3.1 1.5 0.2 setosa
select(dat, 条件)
条件
iris.select <- select(iris, starts_with("Sepal"))
head(iris.select)
## Sepal.Length Sepal.Width
## 1 5.1 3.5
## 2 4.9 3.0
## 3 4.7 3.2
## 4 4.6 3.1
## 5 5.0 3.6
## 6 5.4 3.9
mutate(dat, 追加する列)
iris.mutate <- mutate(iris,
newColumn = ifelse(Sepal.Length > 5, 1, 0)
)
head(iris.mutate)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species newColumn
## 1 5.1 3.5 1.4 0.2 setosa 1
## 2 4.9 3.0 1.4 0.2 setosa 0
## 3 4.7 3.2 1.3 0.2 setosa 0
## 4 4.6 3.1 1.5 0.2 setosa 0
## 5 5.0 3.6 1.4 0.2 setosa 0
## 6 5.4 3.9 1.7 0.4 setosa 1
group_by(data, グループ化する要素が入った列名)
summarise(data, 関数)
iris.Sp.group <- group_by(iris, Species) # 列Speciesの要素でグループ化
summarise(iris.Sp.group,
nSpecies = length(Species),
meanSL = mean(Sepal.Length)
)
## nSpecies meanSL
## 1 150 5.843333
準備
data.A <- data.frame(x = c("A", "B", "F"), y = 1:3)
data.B <- data.frame(x = c("A", "D", "E"), z = 4:6)
head(data.A)
## x y
## 1 A 1
## 2 B 2
## 3 F 3
head(data.B)
## x z
## 1 A 4
## 2 D 5
## 3 E 6
full_join(data, data, by = キー列)
該当するものがない場合は,NAが入る
full_join(data.A, data.B, by = "x")
## x y z
## 1 A 1 4
## 2 B 2 NA
## 3 F 3 NA
## 4 D NA 5
## 5 E NA 6
inner_join(data, data, by = キー列)
inner_join(data.A, data.B, by = "x")
## x y z
## 1 A 1 4
bind_rows(data, data)
標準のrbind()と同じ、左のデータフレームに右のデータフレームを結合する
bind_rows(data.A, data.B)
## x y z
## 1 A 1 NA
## 2 B 2 NA
## 3 F 3 NA
## 4 A NA 4
## 5 D NA 5
## 6 E NA 6
テーブルIDを変数として追加する
bind_rows(data.A, data.B, .id = "df_id")
## df_id x y z
## 1 1 A 1 NA
## 2 1 B 2 NA
## 3 1 F 3 NA
## 4 2 A NA 4
## 5 2 D NA 5
## 6 2 E NA 6
準備
library(tidyr) # ライブラリの読み込み
data.A$date <- c("2016-10", "2016-11", "2016-12")
head(data.A)
## x y date
## 1 A 1 2016-10
## 2 B 2 2016-11
## 3 F 3 2016-12
separate(data, col = 分ける列, into = c(分けられた列名, 分けられた列名) , sep = “分ける文字”)
separate(data.A, col = date, into = c("year", "month") , sep = "-")
## x y year month
## 1 A 1 2016 10
## 2 B 2 2016 11
## 3 F 3 2016 12
「データから価値を創造する」一般社団法人データマーケティングラボラトリー
Copyright© DML All Rights Reserved.