<div dir="ltr"><div>Is this what you want:</div><div> </div><div>> x <- matrix(sample(c(0,1), 200, TRUE, prob = c(10,1)), ncol = 20)<br>> # sum up to at most first 3 non-zero items<br>> xSum <- apply(x, 1, function(.row){<br>
+     indx <- which(.row != 0)[1:3]<br>+     return(sum(.row[indx], na.rm = TRUE))<br>+ })<br>> xSum<br> [1] 0 0 1 2 2 2 3 2 3 2<br>> cbind(apply(x, 1, paste, collapse = ''))<br>      [,1]                  <br>
 [1,] "00000000000000000000"<br> [2,] "00000000000000000000"<br> [3,] "10000000000000000000"<br> [4,] "00000000001000000001"<br> [5,] "00001000001000000000"<br> [6,] "01001000000000000000"<br>
 [7,] "01001000000000000100"<br> [8,] "00000010000001000000"<br> [9,] "00100100000001000000"<br>[10,] "00000001000000010000"<br>> <br></div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On Tue, May 21, 2013 at 5:10 AM, JNV <span dir="ltr"><<a href="mailto:jose@memo2.nl" target="_blank">jose@memo2.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi there,<br>
I've got this matrix D with, say 10 rows and 20 columns. For each row I want<br>
to sum the first 3 non zero elements and put them in a vector z.<br>
<br>
So if the first row D[1,] is<br>
0 3 5 0 8 9 3 2 4 0<br>
<br>
then I want z<br>
z<-D[1,2]+D[1,3]+D[1,5]<br>
<br>
But if there are less than 3 non zero elements, those should be summed. If<br>
there are no non zero elements, the result must be zero.<br>
<br>
So if the first row D[1,] is<br>
0 0 3 0 1 0 0 0 0 0<br>
<br>
then I want z<br>
z<-D[1,3]+D[1,5]<br>
<br>
Hope someone can help me out!<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://r.789695.n4.nabble.com/Sum-first-3-non-zero-elements-of-row-tp4667563.html" target="_blank">http://r.789695.n4.nabble.com/Sum-first-3-non-zero-elements-of-row-tp4667563.html</a><br>

Sent from the datatable-help mailing list archive at Nabble.com.<br>
_______________________________________________<br>
datatable-help mailing list<br>
<a href="mailto:datatable-help@lists.r-forge.r-project.org">datatable-help@lists.r-forge.r-project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Jim Holtman<br>Data Munger Guru<br> <br>What is the problem that you are trying to solve?<br>Tell me what you want to do, not how you want to do it.
</div>