2015-11-25 1 views
1

Je dois résumer les colonnes d'une table qui ont un nom commençant par une chaîne particulière.R-sum vecteurs correspondant noms

Une table exemple pourrait être:

tbl<-data.frame(num1=c(3,2,9), num2=c(3,2,9),n3=c(3,2,9),char1=c('a', 'b', 'c')) 

-je obtenir la liste des colonnes (dans cet exemple, j'ai écrit seulement 2, mais le cas réel a plus tan 20).

a<-colnames(tbl)[grep('num', colnames(tbl))] 

J'ai essayé avec

sum(tbl[,a]) 

Mais je reçois un seul numéro avec la somme totale des éléments dans les deux vecteurs.

Ce que je dois est le résultat de:

tbl$num1+ tbl$num2 

Répondre

0

Nous pouvons soit utiliser Reduce

Reduce(`+`, tbl[a]) 

Ou rowSums. Le rowSums a également la possibilité de supprimer les éléments NA avec na.rm=TRUE.

rowSums(tbl[a])