Maybe this does what you want:
> x <- as.matrix(read.table("clipboard")) > x V1 V2 V3 V4 1 NA 0 0 0 2 0 NA 0 NA 3 0 0 NA 2 4 0 0 2 NA > rowSums(x==2, na.rm=T) 1 2 3 4 0 0 1 1 >
There's probably at least 5 or 6 other quite sensible ways of doing this, but this is probably the fastest (and the least versatile).
A more general building block is the sum() function, as in:
> sum(x[3,]==2, na.rm=T) [1] 1 >
The key is the use of the 'na.rm=T' argument value.
hope this helps,
Tony Plate
Tim Smith wrote:
Hi,
I had the following code:
testp <- rcorr(t(datcm1),type = "pearson")
mat1 <- testp[[1]][,] > 0.6
mat2 <- testp[[3]][,] < 0.05
mat3 <- mat1 + mat2
The resulting mat3 (smaller version) matrix looks like:
NA 0 0 0 0 NA 0 NA 0 0 NA 2 0 0 2 NA To get to the number of times a '2' appears in the rows, I was trying to run the following code:
numrow = nrow(mat3)
counter <- matrix(nrow = numrow,ncol =1)
for(i in 1:numrow){
count = 0;
for(j in 1:numrow){
if(mat3[i,j] == 2){
count = count + 1
}
}
counter[i,1] = count
}
However, I get the following error:
'Error in if (mat3[i, j] == 2) { : missing value where TRUE/FALSE needed'
I also tried to use the na.action, but couldn't get anything. I'm sure there must be a relatively easy fix to this. Is there a workaround this problem?
thanks,
Tim
__________________________________________________
[[alternative HTML version deleted]]
______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html