2016-08-24 3 views
0

세 가지 치료법이 있으며 각 치료법에는 5 가지 샘플 값이 있습니다. 나는 각 치료에 해당하는 다섯 가지 값을 합산하는 방법에 어려움에 처해있다.어떻게 분할 기준으로 셀을 합치시겠습니까?

정말 큰 데이터 프레임을 사용하여 관리가 쉽지 않습니다. 내가 획득하고

Treatment Variable 
A1 0.020408163 
A1 0.040816327 
A1 0.06122449 
A1 0.081632653 
A1 0.102040816 
A2 0.12244898 
A2 0.142857143 
A2 0.163265306 
A2 0.183673469 
A2 0.204081633 
A3 0.224489796 
A3 0.244897959 
A3 0.265306122 
A3 0.285714286 
A3 0.306122449 

names(dataexample_2) 
summary(dataexample_2) 


Add<-sapply(split(dataexample_2, dataexample_2$Treatment), function(d)  sum(dataexample_2$Variable,na.rm = FALSE)) 
Table<-as.data.frame(Add) 

을 :

아래는 dataframe dataexample_2 내가하지만 비 긍정적 인 결과와 함께 사용하고있는 srcipt있다 (아래 참조)

 Add 
A1 2.44898 
A2 2.44898 
A3 2.44898 

그리고 취득하고자하는 :

 Add 
A1 0.3061 
A2 0.8163 
A3 1.3265 

도움이 될 것입니다. 미리 감사드립니다. 문안 인사. Matías.

+0

완료, 실용성의 부족에 대해 사과드립니다. 문안 인사. –

답변

1

코드의 문제점은 현재 데이터 d 대신 익명의 function(d)에있는 전체 데이터를 참조한다는 것입니다.

다음 수정 라인

당신이 원하는 것을 :
sapply(split(dataexample_2, dataexample_2$Treatment), function(d) sum(d$Variable,na.rm = FALSE)) 

또한 난 당신이 sapply보다 수행 할 작업에 더 적합한 tapply에서 봐 가지고 제안했다. 그것은 훨씬 더 명확하게 모든 것을 할 수 있습니다 :

tapply(dataexample_2$Variable, dataexample_2$Treatment, sum) 
관련 문제