Hello, I'm attempting to write a code that automatically imports data from different files (with different lengths-just one variable) and makes tidy box plots for comparison. I can successfully import the data and create a list of the vectors I want to compare. But I cannot, for the life of me, figure out how to generate box plots using the "list" option. Suppose these are my data: a<-c(1,1,1,1,2,3,2,1,2,3) b<-c(2,2,2,3,4,4,4,3,3) c<-c(4,3,3,2,3,4,5,3,3,3,4,4,5,6,3,2) And this is my list of the vectors I'm interested in: z<-list(c("a","b","c")) Well, this successfully generates the kind of boxplot I want: boxplot(a,b,c) But this does not: boxplot(z) Because I'm trying to write an automatic plot-generator as the amount of data I'm working with will typically vary, I need to write this to handle any number of data vectors. I've tried every imaginable means of tweaking the name of "z", with zero success. And I've scoured the help pages for about 45 minutes (just to preempt any "read the help" responses). Please help! Thanks, Ryan -- Ryan Utz, Ph.D. Aquatic Ecologist/STREON Scientist National Ecological Observatory Network Home/Cell: (724) 272-7769 Work: (720) 836-2488 [[alternative HTML version deleted]]
Hi, On Mon, Dec 12, 2011 at 4:24 PM, Ryan Utz <utz.ryan at gmail.com> wrote:> Hello, > > I'm attempting to write a code that automatically imports data from > different files (with different lengths-just one variable) and makes tidy > box plots for comparison. I can successfully import the data and create a > list of the vectors I want to compare. But I cannot, for the life of me, > figure out how to generate box plots using the "list" option. Suppose these > are my data: > > a<-c(1,1,1,1,2,3,2,1,2,3) > b<-c(2,2,2,3,4,4,4,3,3) > c<-c(4,3,3,2,3,4,5,3,3,3,4,4,5,6,3,2) > > And this is my list of the vectors I'm interested in: > > ?z<-list(c("a","b","c"))Did you look at z? You've made a list with a single element containing three characters:> z[[1]] [1] "a" "b" "c" You need instead: z <- list(a, b, c) Also, don't call a variable c - that's a built-in function and using the name elsewhere can cause all kinds of problems (look at your own code line, where you use c as a function and as a variable. although that wasn't a problem here). Sarah> Well, this successfully generates the kind of boxplot I want: > > boxplot(a,b,c) > > But this does not: > > boxplot(z) > > Because I'm trying to write an automatic plot-generator as the amount of > data I'm working with will typically vary, I need to write this to handle > any number of data vectors. > > I've tried every imaginable means of tweaking the name of "z", with zero > success. And I've scoured the help pages for about 45 minutes (just to > preempt any "read the help" responses). Please help! > > Thanks, > Ryan >-- Sarah Goslee http://www.functionaldiversity.org
Ryan, I think you could do what you want by having the vector data written to separate files; then create a file containing the individual file names. In R, read the file containing the list of file names and loop through this reading in the individual vector files. Maybe this is an inelegant, brute force approach, but it has worked for me with essentially the same problem. Tom On Mon, Dec 12, 2011 at 4:24 PM, Ryan Utz <utz.ryan@gmail.com> wrote:> Hello, > > I'm attempting to write a code that automatically imports data from > different files (with different lengths-just one variable) and makes tidy > box plots for comparison. I can successfully import the data and create a > list of the vectors I want to compare. But I cannot, for the life of me, > figure out how to generate box plots using the "list" option. Suppose these > are my data: > > a<-c(1,1,1,1,2,3,2,1,2,3) > b<-c(2,2,2,3,4,4,4,3,3) > c<-c(4,3,3,2,3,4,5,3,3,3,4,4,5,6,3,2) > > And this is my list of the vectors I'm interested in: > > z<-list(c("a","b","c")) > > Well, this successfully generates the kind of boxplot I want: > > boxplot(a,b,c) > > But this does not: > > boxplot(z) > > Because I'm trying to write an automatic plot-generator as the amount of > data I'm working with will typically vary, I need to write this to handle > any number of data vectors. > > I've tried every imaginable means of tweaking the name of "z", with zero > success. And I've scoured the help pages for about 45 minutes (just to > preempt any "read the help" responses). Please help! > > Thanks, > Ryan > > -- > > Ryan Utz, Ph.D. > Aquatic Ecologist/STREON Scientist > National Ecological Observatory Network > > Home/Cell: (724) 272-7769 > Work: (720) 836-2488 > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. >-- Thomas E Adams National Weather Service Ohio River Forecast Center 1901 South State Route 134 Wilmington, OH 45177 EMAIL: thomas.adams@noaa.gov VOICE: 937-383-0528 FAX: 937-383-0033 [[alternative HTML version deleted]]
Sorry -- previous versiuon prematurely sent. Full version is: Yikes! ?You should never have to do this sort of thing (writing stuff out to files, etc.) What is wanted, I believe, is ?do.call as in do.call(boxplot, z) where z is list(a,b,c) ? as Sarah described. However, I think you might do even better in terms of controlling options, labels, etc. if you would get the data into standard flat file format (data frame) as Result Source 1 a 3 b 2 b 5 c ... etc. (This is easy to do in R and via many packages.) and then use he formula interface in the lattice ?bwplot function for th eplot. Cheers, Bert> > result > > On Mon, Dec 12, 2011 at 1:43 PM, Thomas Adams <thomas.adams at noaa.gov> wrote: >> Ryan, >> >> I think you could do what you want by having the vector data written to >> separate files; then create a file containing the individual file names. In >> R, read the file containing the list of file names and loop through this >> reading in the individual vector files. Maybe this is an inelegant, brute >> force approach, but it has worked for me with essentially the same problem. >> >> Tom >> >> On Mon, Dec 12, 2011 at 4:24 PM, Ryan Utz <utz.ryan at gmail.com> wrote: >> >>> Hello, >>> >>> I'm attempting to write a code that automatically imports data from >>> different files (with different lengths-just one variable) and makes tidy >>> box plots for comparison. I can successfully import the data and create a >>> list of the vectors I want to compare. But I cannot, for the life of me, >>> figure out how to generate box plots using the "list" option. Suppose these >>> are my data: >>> >>> a<-c(1,1,1,1,2,3,2,1,2,3) >>> b<-c(2,2,2,3,4,4,4,3,3) >>> c<-c(4,3,3,2,3,4,5,3,3,3,4,4,5,6,3,2) >>> >>> And this is my list of the vectors I'm interested in: >>> >>> ?z<-list(c("a","b","c")) >>> >>> Well, this successfully generates the kind of boxplot I want: >>> >>> boxplot(a,b,c) >>> >>> But this does not: >>> >>> boxplot(z) >>> >>> Because I'm trying to write an automatic plot-generator as the amount of >>> data I'm working with will typically vary, I need to write this to handle >>> any number of data vectors. >>> >>> I've tried every imaginable means of tweaking the name of "z", with zero >>> success. And I've scoured the help pages for about 45 minutes (just to >>> preempt any "read the help" responses). Please help! >>> >>> Thanks, >>> Ryan >>> >>> -- >>> >>> Ryan Utz, Ph.D. >>> Aquatic Ecologist/STREON Scientist >>> National Ecological Observatory Network >>> >>> Home/Cell: (724) 272-7769 >>> Work: (720) 836-2488 >>> >>> ? ? ? ?[[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> 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. >>> >> >> >> >> -- >> >> Thomas E Adams >> National Weather Service >> Ohio River Forecast Center >> 1901 South State Route 134 >> Wilmington, OH 45177 >> EMAIL: ?thomas.adams at noaa.gov >> VOICE: ?937-383-0528 >> FAX: ? ?937-383-0033 >> >> ? ? ? ?[[alternative HTML version deleted]] >> >> ______________________________________________ >> 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. > > > > -- > > Bert Gunter > Genentech Nonclinical Biostatistics > > Internal Contact Info: > Phone: 467-7374 > Website: > http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
Vining, Kelly
2011-Dec-12 23:09 UTC
[R] Boxplot of multiple vectors with different lengths
Ryan, Do you necessarily have to use "list"? Have you tried the usecols=TRUE option in boxplot? Cheers, --Kelly V. -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Ryan Utz Sent: Monday, December 12, 2011 1:24 PM To: r-help at r-project.org Subject: [R] Boxplot of multiple vectors with different lengths Hello, I'm attempting to write a code that automatically imports data from different files (with different lengths-just one variable) and makes tidy box plots for comparison. I can successfully import the data and create a list of the vectors I want to compare. But I cannot, for the life of me, figure out how to generate box plots using the "list" option. Suppose these are my data: a<-c(1,1,1,1,2,3,2,1,2,3) b<-c(2,2,2,3,4,4,4,3,3) c<-c(4,3,3,2,3,4,5,3,3,3,4,4,5,6,3,2) And this is my list of the vectors I'm interested in: z<-list(c("a","b","c")) Well, this successfully generates the kind of boxplot I want: boxplot(a,b,c) But this does not: boxplot(z) Because I'm trying to write an automatic plot-generator as the amount of data I'm working with will typically vary, I need to write this to handle any number of data vectors. I've tried every imaginable means of tweaking the name of "z", with zero success. And I've scoured the help pages for about 45 minutes (just to preempt any "read the help" responses). Please help! Thanks, Ryan -- Ryan Utz, Ph.D. Aquatic Ecologist/STREON Scientist National Ecological Observatory Network Home/Cell: (724) 272-7769 Work: (720) 836-2488 [[alternative HTML version deleted]] ______________________________________________ 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.