107 votes

Additionner les lignes dans un data.frame ou une matrice

J'ai un très grand dataframe avec des lignes comme observations et des colonnes comme marqueurs génétiques. Je voudrais créer une nouvelle colonne qui contient la somme d'un certain nombre de colonnes sélectionnées pour chaque observation en utilisant R.

Si j'ai 200 colonnes et 100 lignes, alors je voudrais créer une nouvelle colonne qui a 100 lignes avec la somme par exemple des colonnes 43 à 167. Les colonnes ont soit 1 soit 0. Avec la nouvelle colonne qui contient la somme de chaque ligne, je pourrai trier les individus qui ont le plus de marqueurs génétiques.

Je pense que cela ressemble à quelque chose comme:

data$new=sum(data$[,43:167])

1voto

Anoushiravan R Points 4928

Cela pourrait aussi aider, cependant la meilleure option est sans aucun doute la fonction rowSums :

data$new <- Reduce(function(x, y) {
  x + data[, y]
}, init = data[, 43], 44:167)

1voto

Light Points 11

Vous pouvez également utiliser cette fonction adorn_totals du package janitor. Vous pouvez additionner les colonnes ou les lignes en fonction de la valeur que vous donnez à l'argument: where.

Exemple:

tibble::tibble(
a = 10:20,
b = 55:65,
c = 2010:2020,
d = c(LETTERS[1:11])) %>%
janitor::adorn_totals(where = "col") %>%
tibble::as_tibble()

Résultat:

# A tibble: 11 x 5
       a     b     c d     Total

 1    10    55  2010 A      2065
 2    11    56  2011 B      2067
 3    12    57  2012 C      2069
 4    13    58  2013 D      2071
 5    14    59  2014 E      2073
 6    15    60  2015 F      2075
 7    16    61  2016 G      2077
 8    17    62  2017 H      2079
 9    18    63  2018 I      2081
10    19    64  2019 J      2083
11    20    65  2020 K      2085

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X