Hello R lovers I have written a little cute function to count the number of missing value per row in a matrix and return the percentage of missing value it takes a lot of time to run with a 1000 rows matrix I'd like to know if there is a function already implemented to count the number of occurence of a given values in a vector For information, here is the function count<-0 for (i in 1:nrow(Matrix)) { for (j in 1:ncol(Matrix)) {if (is.na(Matrix[i,j])) count<-count+1} Result[i,1]<-((count/(ncol(Matrix)))*100); count<-0 } Result thanks for any help Vincent ************************************************************************* Ce message et toutes les pieces jointes (ci-apres le "message") sont confidentiels et etablis a l'intention exclusive de ses destinataires. Toute utilisation ou diffusion non autorisee est interdite. Tout message electronique est susceptible d'alteration. La SOCIETE GENERALE et ses filiales declinent toute responsabilite au titre de ce message s'il a ete altere, deforme ou falsifie. ******** This message and any attachments (the "message") are confidentia... {{dropped}}
vincent.stoliaroff at socgen.com wrote:> Hello R lovers > I have written a little cute function to count the number of missing value > per row in a matrix and return the percentage of missing value > > it takes a lot of time to run with a 1000 rows matrix > > I'd like to know if there is a function already implemented to count the > number of occurence of a given values in a vector > > > For information, > here is the function > count<-0 > for (i in 1:nrow(Matrix)) > { > for (j in 1:ncol(Matrix)) {if (is.na(Matrix[i,j])) count<-count+1} > Result[i,1]<-((count/(ncol(Matrix)))*100); > count<-0 > } > Result > > thanks for any help > VincentWell, it's pretty easy to do it: apply(Matrix, 1, function(x) sum(is.na(x))) / ncol(Matrix) * 100 Uwe Ligges
> Hello R lovers > I have written a little cute function to count the number of missing value > per row in a matrix and return the percentage of missing value >R> M <- matrix(rnorm(25), ncol=5) R> diag(M) <- NA R> M[2,3] <- NA R> apply(M, 2, function(x) sum(is.na(x)))/ncol(M) [1] 0.2 0.2 0.4 0.2 0.2 the percentage of missing values per row... Torsten> it takes a lot of time to run with a 1000 rows matrix > > I'd like to know if there is a function already implemented to count the > number of occurence of a given values in a vector > > > For information, > here is the function > count<-0 > for (i in 1:nrow(Matrix)) > { > for (j in 1:ncol(Matrix)) {if (is.na(Matrix[i,j])) count<-count+1} > Result[i,1]<-((count/(ncol(Matrix)))*100); > count<-0 > } > Result > > thanks for any help > Vincent > > > > > ************************************************************************* > Ce message et toutes les pieces jointes (ci-apres le "message") sont > confidentiels et etablis a l'intention exclusive de ses destinataires. > Toute utilisation ou diffusion non autorisee est interdite. > Tout message electronique est susceptible d'alteration. > La SOCIETE GENERALE et ses filiales declinent toute responsabilite au > titre de ce message s'il a ete altere, deforme ou falsifie. > ******** > This message and any attachments (the "message") are confidentia... {{dropped}} > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > >
Dear Vincent> I'd like to know if there is a function already implemented > to count the > number of occurence of a given values in a vectorDoes my.matrix<-cbind(c(0,1,NA),c(NA,1,NA)) count.NA<-function(the.matrix){ result<-t(apply(the.matrix,1,function(x,n){ m<-sum(is.na(x)) c(m,m/n) },n=dim(the.matrix)[2])) dimnames(result)<-list(dimnames(the.matrix)[[1]],c("row count","proportion")) result } count.NA(my.matrix) do what you were looking for? Hope that helps. Cheers Thomas --- Thomas Hotz Research Associate in Medical Statistics University of Leicester United Kingdom Department of Epidemiology and Public Health 22-28 Princess Road West Leicester LE1 6TP Tel +44 116 252-5410 Fax +44 116 252-5423 Division of Medicine for the Elderly Department of Medicine The Glenfield Hospital Leicester LE3 9QP Tel +44 116 256-3643 Fax +44 116 232-2976
> From: Uwe Ligges [mailto:ligges at statistik.uni-dortmund.de] > > vincent.stoliaroff at socgen.com wrote: > > > Hello R lovers > > I have written a little cute function to count the number > of missing value > > per row in a matrix and return the percentage of missing value > > > > it takes a lot of time to run with a 1000 rows matrix > > > > I'd like to know if there is a function already implemented > to count the > > number of occurence of a given values in a vector > > > > > > For information, > > here is the function > > count<-0 > > for (i in 1:nrow(Matrix)) > > { > > for (j in 1:ncol(Matrix)) {if (is.na(Matrix[i,j])) > count<-count+1} > > Result[i,1]<-((count/(ncol(Matrix)))*100); > > count<-0 > > } > > Result > > > > thanks for any help > > Vincent > > Well, it's pretty easy to do it: > > apply(Matrix, 1, function(x) sum(is.na(x))) / ncol(Matrix) * 100Or perhaps faster: rowMeans(is.na(Matrix)) * 100 Andy> Uwe Ligges > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help >------------------------------------------------------------------------------ Notice: This e-mail message, together with any attachments, cont... {{dropped}}