Peter, Your example doesn't work for me unless I set options(stringsAsFactors=TRUE) first. (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-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of Peter Langfelder > Sent: Thursday, November 11, 2010 12:25 PM > To: Noah Silverman > Cc: r-help@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 > <n...@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@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@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.