rowsum pour la matrice de sur-spécifié nombre de colonnes dans la R

Que j'essaie de faire la somme des colonnes dans une matrice R pour un certain rang. Cependant, je ne veux pas l'ensemble de la ligne pour être additionnées, mais seulement un certain nombre de colonnes, c'est à dire, dans ce cas, toutes les colonnes au-dessus de la diagonale. J'ai essayé de somme et rowSums fonction, mais ils sont soit de me donner des résultats étranges ou un message d'erreur. À titre d'exemple, voir l'exemple de code pour un 8x8 de matrice ci-dessous. Pour la première ligne j'ai besoin de la somme de la ligne à l'exception de la rubrique [1,1], pour la deuxième rangée, la somme à l'exception des articles [2,1] et [2,2] etc.

m1 <- matrix(c(0.2834803,0.6398198,0.0766999,0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,
               0.0000000,0.1101746,0.6354086,0.2544168,0.0000000,0.0000000,0.0000000,0.0000000,
               0.0000000,0.0000000,0.0548145,0.9451855,0.0000000,0.0000000,0.0000000,0.0000000,
               0.0000000,0.0000000,0.0000000,0.3614786,0.6385214,0.0000000,0.0000000,0.0000000,
               0.0000000,0.0000000,0.0000000,0.0000000,0.5594658,0.4405342,0.0000000,0.0000000,
               0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.7490395,0.2509605,0.0000000,
               0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.5834363,0.4165637,
          0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,1.0000000),
             8, 8, byrow = TRUE, 
             dimnames = list(c("iAAA", "iAA", "iA", "iBBB", "iBB", "iB", "iCCC", "iD"),
                  c("iAAA_p", "iAA_p", "iA_p", "iBBB_p", "iBB_p", "iB_p", "iCCC_p", "iD_p")))

J'ai essayé ce qui suit:

rowSums(m1[1, 2:8]) --> Error in rowSums(m1[1, 2:8]) : 
  'x' must be an array of at least two dimensions

Sinon:

sum(m1[1,2]:m1[1,8]) --> wrong result of 0.6398198 (which is item [1,2])

Que je comprends rowSums besoins d'un tableau plutôt qu'un vecteur (bien que pas très bien pourquoi). Mais je ne comprends pas pourquoi le deuxième chemin à l'aide de la somme ne fonctionne pas. Idéalement, il est possible de seulement la somme de toutes les colonnes d'une ligne qui se trouvent au-dessus de la diagonale.

Merci beaucoup!

OriginalL'auteur Triamus | 2013-06-25