[R] Populating then sorting a matrix and/or data.frame
John Kane
jrkrideau at yahoo.ca
Thu Nov 11 22:57:33 CET 2010
--- 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