Ich möchte einen einzelnen Datenrahmen aus der Liste der Datenrahmen, in denen alle Spalten identisch sind mit Ausnahme einer Spalte "Einkommen", die Summe der alle Einnahmen in der Liste sein soll.Summe der Spalten in einer Liste von Datenrahmen
Hier ist meine Liste von Datenrahmen
mylist= structure(list(`1` = structure(list(ID = c(36L, 37L, 38L, 39L), Income = c(0, 0, 0, 9100)), .Names = c("ID", "Income"), row.names = c(1L, 2L, 3L, 4L), class = "data.frame"), `2` = structure(list(ID = c(36L, 37L, 38L, 39L), Income = c(0, 0, 0, 0)), .Names = c("ID", "Income"), row.names = c(1L, 2L, 3L, 4L), class = "data.frame"), `3` = structure(list(ID = c(36L, 37L, 38L, 39L), Income = c(7360, 0, 0, 0)), .Names = c("ID", "Income"), row.names = c(1L, 2L, 3L, 4L), class = "data.frame")))
> mylist
$`1`
ID Income
1 36 0
2 37 0
3 38 0
4 39 9100
$`2`
ID Income
1 36 0
2 37 0
3 38 0
4 39 0
$`3`
ID Income
1 36 7360
2 37 0
3 38 0
4 39 0
Dies ist, was ich tun möchte:
ID Income
34 36 7360
26 37 0
23 38 0
15 39 9100
I() zu verwenden, haben versucht, zu reduzieren, um die Summe zu tun, aber es schafft eine separate Spalte was ich vermeiden wollen:
Reduce(function(df1, df2) data.frame(df1[,], res=df1["Income"] + df2["Income"]),mylist)
Danke für beide Lösungen. Ich versuche nur herauszufinden, wie es funktioniert. –
@AndroidBeginner In der ersten Lösung werden wir nach 'ID' verschmelzen, um ein einzelnes Dataset zu erstellen und dann die 'rowSums' der Spalten von 2: ncol (r1). Für die zweite Lösung ist die 'Reduce (' + '') die elementweise Summe aller entsprechenden Werte in der 'Mylist' – akrun