DatenDer Versuch, unterschiedliche Spalten Anzahl an gleichzeitig zu summieren
Betrachten Sie diese data.table haben oder Datenrahmen (i mit data.table gerade arbeite):
a <- c(1, 6.7, 7.0, 6.5, 7.0, 7.2, 4.2, 5, 6.6,6.7)
b <- c(2,5.0, 3.5, 4.9, 7.8, 9.3, 8.0, 7.8, 8.0,10)
c <- c(3, 7.0, 5.5, 7.2, 7.7, 7.2, 8.0, 7.6, 7,6.7)
d <- c(4, 7.0, 7.0, 7.0, 6.9, 6.8, 9.0, 6.0, 6.6,6.7)
df <- data.frame(rbind(a,b,c,d))
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
a 1 6.7 7.0 6.5 7.0 7.2 4.2 5.0 6.6 6.7
b 2 5.0 3.5 4.9 7.8 9.3 8.0 7.8 8.0 10.0
c 3 7.0 5.5 7.2 7.7 7.2 8.0 7.6 7.0 6.7
d 4 7.0 7.0 7.0 6.9 6.8 9.0 6.0 6.6 6.7
Problem
ich versuche, X3 und X4 für die erste Zeile, X3 und X4 und X5 für das zweite zusammenzufassen, etc ...
Was ich tat
Ich habe einen Vektor namens iter:
iter <- c(1,2,3,4)
Und was ich tat, ist eine for-Schleife
for(i in 1:nrow(df)){
df$sum[i] <- sum(as.numeric(df[i,2:(2+iter[i])]),na.rm=T)}
Kennen Sie einen Weg, es zu tun, ohne ein für Schleife?
Erwartete Ausgabe
output
13.7 #correspond to df[1,X3]+df[1,X4]
13.4 #correspond to df[2,X3]+df[2,X4]+df[2,X5]
27.4 #correspond to df[3,X3]+df[3,X4]+df[3,X5]+df[3,X6]
37.4 #correspond to df[4,X3]+df[4,X4]+df[4,X5]+df[4,X6]+df[4,X7]
EDIT
iter <- c(1,2,3,4)
hier völlig willkürlich ist, so brauche ich eine Lösung für jeden Wert von iter
@lmo versucht nun bearbeitet i die Datenrahmen und die for-Schleife –