[R] Printing 'k' levels of factors 'n' times each, but 'n' is unequal for all levels ?

Uwe Ligges ligges at statistik.tu-dortmund.de
Wed Dec 9 16:44:20 CET 2009



A Singh wrote:
> Dear List,
> 
> I need to print out each of 'k' levels of a factor 'n' times each, where 
> 'n' is the number of elements belonging to each factor.
> 
> I know that this can normally be done using the gl() command,
> but in my case, each level 'k' has an unequal number of elements.
> 
> Example with code is as below:
> 
> vc<-read.table("P:\\Transit\\CORRECT 
> files\\Everything-newest.csv",header=T, sep=",", dec=".", na.strings=NA, 
> strip.white=T)
> 
> vcdf<-data.frame(vc)
> 
> tempdf<-data.frame(cbind(vcdf[,1:3], vcdf[,429]))
> newtemp<-na.exclude(tempdf)
> 
> newtemp[,2]<-factor(newtemp[,2])
> 
> groupmean<-tapply(newtemp[,4], newtemp[,2], mean)
> 
> newmark<-factor(groupmean, exclude=(groupmean==0 | groupmean==1))
> newmark
> 
> This is what the output is (going up to 61 levels)
> 1                  2                  3                  4
> <NA>  0.142857142857143  0.444444444444444               <NA>
> 5                  6                  8                  9
> 0.3333333333  0.09090909090  0.3846153846                <NA>
> 
> .............     61
>                 <NA>
> 
> The variable 'groupmean' calculates means for newtemp[,4] for 61 levels 
> (k). Levels are specified in newtemp[,2].
> 
> I now want to be able to print out each value of 'groupmean'  as many 
> times as there are elements in the group for which each is calculated.
> 
> So for E.g. if level 1 of newtemp[,2] has about 15 elements, <NA> should 
> be printed 15 times, level 2 = 12 times 0.1428, and so on.
> 
> Is there a way of specifying that a list needs to be populated with 
> replicates of groupmeans based on values got from newtemp[,2]?

See ?mapply and ?rep, hence

mapply(rep, values, replicates)

where "values" and "replicates" are corresponding vectors.

Uwe Ligges



> I just can't seem to figure this out by myself.
> 
> Many thanks for your help.
> 
> Aditi
> 
> ----------------------
> A Singh
> Aditi.Singh at bristol.ac.uk
> School of Biological Sciences
> University of Bristol
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list