[R] matrix manipulation with a for loop
antonio rodriguez
antonio.raju at gmail.com
Wed Nov 1 18:51:52 CET 2006
Hi,
Having a matrix F.zoo (6575,189) with NA's in some columns I'm trying to
extract from each column the percent of days within an specific range,
so I've wrote this procedure:
length(subset(F.zoo[,86],(F.zoo[,86]>=5) & (F.zoo[,86]<=
9)))/(length(F.zoo[,86])-length(subset(F.zoo[,86],is.na(F.zoo[,86]))))*100
But to do this for each column (189) is pretty hard, so I want to write
a function in order to perform this automatically, such I have the
percent value corresponding to a specific column. I' tried these two
formulas but I can't get it. I think the problem is how to set the
initial values for the loop:
Formula1:
nnn<-function(x){for (i in F.zoo[,i]){
print(length(subset(F.zoo[,i],(F.zoo[,i]>=5) & (F.zoo[,i]<=
9)))/(length(F.zoo[,i])-length(subset(F.zoo[,i],is.na(F.zoo[,i]))))*100)
}
}
Formula 2:
H<-t(matrix(1,189))
nnn<-function(x){for (i in col(H){
print(length(subset(F.zoo[,i],(F.zoo[,i]>=5) & (F.zoo[,i]<=
9)))/(length(F.zoo[,i])-length(subset(F.zoo[,i],is.na(F.zoo[,i]))))*100)
}
}
Thanks,
Antonio
More information about the R-help
mailing list