[R] Populating then sorting a matrix and/or data.frame

William Dunlap wdunlap at tibco.com
Thu Nov 11 22:59:07 CET 2010


You are right, I mistyped it.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> -----Original Message-----
> From: John Kane [mailto:jrkrideau at yahoo.ca] 
> Sent: Thursday, November 11, 2010 1:58 PM
> To: Peter Langfelder; r-help at r-project.org; William Dunlap
> Subject: Re: [R] Populating then sorting a matrix and/or data.frame
> 
> 
> 
> --- On Thu, 11/11/10, William Dunlap <wdunlap at tibco.com> wrote:
> 
> > From: William Dunlap <wdunlap at tibco.com>
> > Subject: Re: [R] Populating then sorting a matrix and/or data.frame
> > To: "Peter Langfelder" <peter.langfelder at gmail.com>, 
> r-help at r-project.org
> > Received: Thursday, November 11, 2010, 4:19 PM
> > Peter,
> > 
> > Your example doesn't work for me unless I
> > set options(stringsAsFactors=TRUE) first.
> 
> 
> Don't you mean stringsAsFactors=FALSE here?  At least I get 
> the same results you do but with stringsAsFactors=FALSE  The 
> TRUE condition is giving multiple NAs and error messages
> 
> 
> 
> 
> 
> > (If I do set that, then all columns of 'results'
> > have class "character", which I doubt the user
> > wants.)
> > 
> > > results <- data.frame()
> > >
> > > n = 10
> > > for(i in 1:n){
> > +    a = LETTERS[i];
> > +    b = i;
> > +    c = 3*i + 2
> > +    d = rnorm(1);
> > +    results <- rbind(results, c(a,b,c,d))
> > + }
> > There were 36 warnings (use warnings() to see them)
> > > warnings()[1:5]
> > $`invalid factor level, NAs generated`
> > `[<-.factor`(`*tmp*`, ri, value = "B")
> > 
> > $`invalid factor level, NAs generated`
> > `[<-.factor`(`*tmp*`, ri, value = "2")
> > 
> > $`invalid factor level, NAs generated`
> > `[<-.factor`(`*tmp*`, ri, value = "8")
> > 
> > $`invalid factor level, NAs generated`
> > `[<-.factor`(`*tmp*`, ri, value = "-0.305558353507095")
> > 
> > $`invalid factor level, NAs generated`
> > `[<-.factor`(`*tmp*`, ri, value = "C")
> > 
> > > results
> >    X.A. X.1. X.5. X.1.43055780028799.
> > 1     A    1   
> > 5    1.43055780028799
> > 2  <NA> <NA> <NA>   
> >             <NA>
> > 3  <NA> <NA> <NA>   
> >             <NA>
> > 4  <NA> <NA> <NA>   
> >             <NA>
> > 5  <NA> <NA> <NA>   
> >             <NA>
> > 6  <NA> <NA> <NA>   
> >             <NA>
> > 7  <NA> <NA> <NA>   
> >             <NA>
> > 8  <NA> <NA> <NA>   
> >             <NA>
> > 9  <NA> <NA> <NA>   
> >             <NA>
> > 10 <NA> <NA> <NA>     
> >           <NA>
> > 
> > Bill Dunlap
> > Spotfire, TIBCO Software
> > wdunlap tibco.com  
> > 
> > > -----Original Message-----
> > > From: r-help-bounces at r-project.org
> > 
> > > [mailto:r-help-bounces at r-project.org]
> > On Behalf Of Peter Langfelder
> > > Sent: Thursday, November 11, 2010 12:25 PM
> > > To: Noah Silverman
> > > Cc: r-help at r-project.org
> > > Subject: Re: [R] Populating then sorting a matrix
> > and/or data.frame
> > > 
> > > On Thu, Nov 11, 2010 at 11:33 AM, Noah Silverman
> > > <noah at smartmediacorp.com>
> > wrote:
> > > > Still doesn't work.
> > > >
> > > > When using rbind to build the data.frame, it get
> > a 
> > > structure mostly full of
> > > > NA.
> > > > The data is correct, so something about pushing
> > into the 
> > > data.frame is
> > > > breaking.
> > > >
> > > > Example code:
> > > > results <- data.frame()
> > > >
> > > > for(i in 1:n){
> > > >    #do all the work
> > > >    #a is a test label. b,c,d are numeric.
> > > >    results <- rbind(results, c(a,b,c,d))
> > > > }
> > > 
> > > Works for me:
> > > 
> > > results <- data.frame()
> > > 
> > > n = 10
> > > for(i in 1:n){
> > >    a = LETTERS[i];
> > >    b = i;
> > >    c = 3*i + 2
> > >    d = rnorm(1);
> > >    results <- rbind(results, c(a,b,c,d))
> > > }
> > > 
> > > 
> > > > results
> > > 
> > >    X.A. X.1. X.5. X.0.142223304589023.
> > > 1     A    1 
> >   5    0.142223304589023
> > > 2     B    2 
> >   8    0.243612305595176
> > > 3     C   
> > 3   11    0.476795513990516
> > > 4     D   
> > 4   14      1.0278220664213
> > > 5     E   
> > 5   17    0.916608672305205
> > > 6     F   
> > 6   20 
> >    1.61075985995586
> > > 7     G   
> > 7   23    0.370423691258896
> > > 8     H   
> > 8   26  -0.0528603547004191
> > > 9     I   
> > 9   29    -2.07888666920403
> > > 10   
> > J   10   32   
> > -1.87980721733655
> > > 
> > > Maybe there's something wrong with the calculation you
> > do?
> > > 
> > > Peter
> > > 
> > > ______________________________________________
> > > 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.
> > > 
> > 
> > ______________________________________________
> > 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