トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン 印刷

行単位の演算

auditR

横方向(行)に演算する

Rは列単位での演算はとても便利だが、行単位での演算がやってみると割と面倒。おそらく、列はデータの項目、行はデータを表すという考え方が背景にある。apply() を使うと行単位での関数の適用ができる。

apply(dat, 1, sum)

しかし、datがデータフレームの場合、数値型だけではないのでエラーが出るし特定の列だけを演算の対象にしたい場合に困る。

別の方法

rowwise()とc_across()を使う。

dat <- tibble(
 a = sample(1:6,100,replace=TRUE),
 b = sample(1:6,100,replace=TRUE),
 c = sample(1:6,100,replace=TRUE)
)
dat %>% 
 rowwise() %>% 
 mutate(res = sum(c_across(), na.rm=TRUE)) %>% 
 ungroup()
参照

Last updated 2021-05-23 | auditR (c) N.Nawata