- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
! データの中から、最大・最小・最新・最古などを選択する。
それぞれ、max()ないしmin()で対応ができるが、変数は配列を入れる必要がある。
したがって、データフレームからselect()で変数を選択してmax()に渡してもエラーになる。
df %>% select(var) %>% max() #これはエラーになる
そのため配列変換を間に含める。
df %>% select(var) %>% matrix() %>% max() #
:注意:
min()やmax()はベクトルを値にとって比較するので、データフレームの列を比較すると全体を一つのベクトルとして見てしまう。
行ごとに列の値を比較したければ、pmax() pmin()を用いる。
! レコードを抽出する
最大値等を拾い出すだけではなく、その値を持つレコードを拾いたいときは、filter()やsummarise()で条件式を含める。
x = c("2020-01-02", "2020-02-23", "2020-03-23", "2020-01-10")
y = c("hoge", "moge", "piyo", "poyo")
df = data.frame(x = x, y = y)
df %>%
mutate_at(vars(x), funs(as.Date)) %>%
summarise(ymdmax = max(x))
や、
data.frame(x = c("2020-01-02", "2020-02-23", "2020-03-23", "2020-01-10"), stringsAsFactors = F) %>%
filter(x == max(x))
:参考:
r-wakalangの'''ill_identifiedさん'''や'''T.N.さん'''に教わった。感謝感激。