Мой вопрос включает суммирование значений по нескольким столбцам фрейма данных и создание нового столбца, соответствующего этому суммированию, используя dplyr
. Записи данных в столбцах являются двоичными (0,1). Я думаю о построчном аналоге функции summarise_each
или . Ниже приведен минимальный пример фрейма данных:mutate_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
.