2016-08-24 2 views
0

Ich habe drei verschiedene Behandlungen und innerhalb jeder habe ich fünf Beispielwerte. Ich habe Schwierigkeiten damit, die fünf bei jeder Behandlung entsprechenden Werte zu summieren.Wie fasst man Zellen mit einem Splitting-Kriterium zusammen?

Wirklich ich arbeite mit einem großen Dataframe, das Management ist nicht zu einfach für mich.

Unten gibt es den Datenrahmen dataexample_2 und die srcipt die ich benutze, aber mit nicht positiven Ergebnissen (siehe unten):

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) 

Ich bin zu erhalten:

 Add 
A1 2.44898 
A2 2.44898 
A3 2.44898 

Und ich wünsche zu erhalten :

 Add 
A1 0.3061 
A2 0.8163 
A3 1.3265 

Jede Hilfe wird wirklich geschätzt. Danke im Voraus. Grüße. Matías.

+0

Fertig, ich entschuldige mich über den Mangel an Praktikabilität. Grüße. –

Antwort

1

Das Problem mit Ihrem Code ist, dass Sie auf die gesamten Daten in Ihrem Anonymus function(d) anstelle der aktuellen Daten d beziehen.

Die folgende korrigierte Linie tut, was Sie wollen:

sapply(split(dataexample_2, dataexample_2$Treatment), function(d) sum(d$Variable,na.rm = FALSE)) 

Ich würde auch vorschlagen, dass Sie einen Blick auf tapply haben, die für die Aufgabe, die Sie als sapply erreichen wollen besser geeignet ist. Es kann die ganze Sache viel klarer machen:

tapply(dataexample_2$Variable, dataexample_2$Treatment, sum) 
Verwandte Themen