내 질문에는 데이터 프레임의 여러 열에 걸쳐 값을 합산하고을 사용 하여이 합계에 해당하는 새 열을 만드는 것이 포함됩니다 dplyr
. 열의 데이터 항목은 binary (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
.