私の質問には、データフレームの複数の列にわたる値を合計し、を使用してこの合計に対応する新しい列を作成することが含まれますdplyr
。列のデータエントリはbinary(0,1)です。のsummarise_each
ormutate_each
関数の行方向のアナログを考えていdplyr
ます。以下は、データフレームの最小限の例です。
library(dplyr)
df=data.frame(
x1=c(1,0,0,NA,0,1,1,NA,0,1),
x2=c(1,1,NA,1,1,0,NA,NA,0,1),
x3=c(0,1,0,1,1,0,NA,NA,0,1),
x4=c(1,0,NA,1,0,0,NA,0,0,1),
x5=c(1,1,NA,1,1,1,NA,1,0,1))
> df
x1 x2 x3 x4 x5
1 1 1 0 1 1
2 0 1 1 0 1
3 0 NA 0 NA NA
4 NA 1 1 1 1
5 0 1 1 0 1
6 1 0 0 0 1
7 1 NA NA NA NA
8 NA NA NA 0 1
9 0 0 0 0 0
10 1 1 1 1 1
私は次のようなものを使用できます:
df <- df %>% mutate(sumrow= x1 + x2 + x3 + x4 + x5)
ただし、これには各列の名前を書き出すことが含まれます。私は50列が好きです。さらに、列名は、この操作を実装するループのさまざまな反復で変更されるため、列名を指定する必要がないようにしたいと思います。
どうすればそれを最も効率的に行うことができますか?どんな援助も大歓迎です。
dplyr
ですか?df$sumrow <- rowSums(df, na.rm = TRUE)
ベースRから単純なものではないのはなぜですか?またはdf$sumrow <- Reduce(`+`, df)
、で行ったのとまったく同じことを複製したい場合dplyr
。