Comment combiner deux lignes dans R?
marcheur
Je voudrais combiner / additionner deux lignes en fonction des noms de lignes pour faire une ligne dans R. Le meilleur itinéraire pourrait être de créer une nouvelle ligne et de additionner les deux lignes ensemble.
Exemple df:
A 1 3 4 6
B 3 2 7 9
C 6 8 1 2
D 3 2 8 9
Où A, B, C, D sont des noms de lignes, je veux combiner / additionner deux lignes (A et C) en une seule pour obtenir:
A+C 7 11 5 8
B 3 2 7 9
D 3 2 8 9
Merci.
Rich Scriven
Vous pouvez remplacer la A
ligne à l'aide de l'opérateur arithmétique d'addition standard, puis supprimer la C
ligne avec une instruction logique.
df["A", ] <- df["A", ] + df["C", ]
df[rownames(df) != "C", ]
# V2 V3 V4 V5
# A 7 11 5 8
# B 3 2 7 9
# D 3 2 8 9
Pour plus de deux lignes, vous pouvez utiliser colSums()
pour l'ajout. Cela suppose que la première valeur nm
est celle que nous remplaçons / conservons.
nm <- c("A", "C")
df[nm[1], ] <- colSums(df[nm, ])
df[!rownames(df) %in% nm[-1], ]
Je vous laisse le soin de changer les noms des lignes. :)
Les données:
df <- structure(list(V2 = c(1L, 3L, 6L, 3L), V3 = c(3L, 2L, 8L, 2L),
V4 = c(4L, 7L, 1L, 8L), V5 = c(6L, 9L, 2L, 9L)), .Names = c("V2",
"V3", "V4", "V5"), class = "data.frame", row.names = c("A", "B",
"C", "D"))