그룹별로 합할 변수가 여러 개 있습니다. 변수 이름은 정확히 동일한 첫 번째 문자를 가지며 1에서 n까지 끝납니다. 합산 할 모든 변수는 데이터 프레임에서 나란히 있습니다. 내가 찾을 수있는 것은 다음과 같습니다.
id<-1:nrow(df)
n<-length(id)
data2<-aggregate(cbind(vol_1,vol_2,vol_3,vol_4,vol_5,vol_6,vol_7,vol_8,vol_9,vol_10)~group,data=data1,sum,na.rm=T)
n이 다음에 바뀔 수 있다는 것을 어떻게 효율적으로 알 수 있습니까?
변수가 모두 동일한 문자로 시작하면 "v"라고 말하면 dplyr 패키지 의 summarise_at
함수 가 편리합니다.
library(dplyr)
df %>%
group_by(group) %>%
summarise_at(vars(starts_with("v")), sum)
# A tibble: 2 x 4
group vol_1 vol_2 vol_3
<fct> <int> <int> <int>
1 1 29 27 24
2 2 26 28 31
이것은 aggregate
명령 과 동일한 결과를 제공합니다 .
데이터 :
set.seed(123)
df <- data.frame(id=1:10, group=gl(2, 5),
vol_1=sample(10), vol_2=sample(10), vol_3=sample(10))
df
id group vol_1 vol_2 vol_3
1 1 1 3 10 8
2 2 1 10 5 7
3 3 1 2 3 2
4 4 1 8 8 1
5 5 1 6 1 6
6 6 2 9 4 3
7 7 2 1 6 4
8 8 2 7 9 10
9 9 2 5 7 9
10 10 2 4 2 5
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다