Моє запитання передбачає підсумовування значень у кількох стовпцях кадру даних та створення нового стовпця, що відповідає цьому підсумовуванню 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
.