Changrong Ge
2016-Jun-06 05:07 UTC
[R] How to specify a data frame column using command line arg?
> > Hi, > I have recently made similar scatter plot. > Suppose you have a data frame "data.csv" and the first column is not > what you want to plot but rather something informative such as ID, Class, > Group, etc which might not be your case (but would be very nice if you want > to color your scatter plots or add cutoff line, etc). The code below would > work well by printing out figures for all possible column i vs column j. > > for(i in names(data[,-1])){ > for(j in names(data[,-1])){ > > png(paste(i," vs " ,j,".png", sep=""), width=4, height=6, units="in", > res=300) > > plot(data[,i],data[,j],xlab=i,ylab=j,log="xy",pch=16) > > > dev.off() > print(c(i,j)) > } > } > > Good luck > Changrong > > On Sun, Jun 5, 2016 at 9:45 PM, Douglas Johnson <todojo at gmail.com> wrote: > >> I'm guessing this is trivial but I've spent two hours searching and >> reading >> FAQ, tutorial, introductory and 'idiom' documents and haven't found a >> solution. All I want to do is select a data frame column at run time using >> a command line arg. For example, the "test.csv" file contains: >> >> a,b,c >> 1,2,3 >> 4,5,6 >> 7,8,9 >> >> If I run "test.r a", I get [1,4,7]. >> If I run "test.r b", I get [2,5,8]. >> >> Here's sample code -- how I map args[1] to column/vector 'a' or 'b' or >> 'c'? >> >> args <- commandArgs(trailingOnly=T) >> >> adl1<-read.csv(file="test.csv",head=T,sep=",") >> >> adl1$SOME-MAGIC-FUNCTION-OR-SYMBOL(args[1]) >> >> >> All I'm really trying to do is generate a bunch of scatter plots of column >> 'x' vs. 'y' without writing a separate program for each pair. >> >> >> Thanks, >> >> >> Doug >> >> >> >> -- >> http://www.dojopico.org <http://dojopico.org> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >> > > > > -- > > Changrong Ge, PhD > > Division of Medical Inflammation Research > Department of Medical Biochemistry and Biophysics (MBB) > Karolinska Institutet > Scheeles v?g 2, B2 Plan 4 > SE-171 77 Stockholm > Sweden > Tel: +46-8-524 86337 , Mobile: +46-(0)76-2878 029 > Fax: +46-8-524 87750 , Email: changrong.ge at ki.se <changrong at dbb.su.se> > or changrong.ge at gmail.com > >-- Changrong Ge, PhD Division of Medical Inflammation Research Department of Medical Biochemistry and Biophysics (MBB) Karolinska Institutet Scheeles v?g 2, B2 Plan 4 SE-171 77 Stockholm Sweden Tel: +46-8-524 86337 , Mobile: +46-(0)76-2878 029 Fax: +46-8-524 87750 , Email: changrong.ge at ki.se <changrong at dbb.su.se> or changrong.ge at gmail.com [[alternative HTML version deleted]]
David L Carlson
2016-Jun-06 15:52 UTC
[R] How to specify a data frame column using command line arg?
Looking at your overall goal to plot multiple columns, you can use a simple loop with expand.grid():> set.seed(42) > adl1 <- matrix(sample.int(9), 3, 3) > colnames(adl1) <- letters[1:3] > lbls <- colnames(adl1) > > ncols <- ncol(adl1) > colnos <- as.matrix(expand.grid(1:ncols, 1:ncols)) > colnos <- colnos[colnos[, 1] < colnos[, 2], ] # Eliminate redundant combinations > colnosVar1 Var2 [1,] 1 2 [2,] 1 3 [3,] 2 3> > for (i in seq_len(nrow(colnos))) {+ plot(adl1[, colnos[i, ]], xlab=lbls[colnos[i, 1]], + ylab=lbls[colnos[i, 2]]) + } Plots all of the unique plots. ------------------------------------- David L Carlson Department of Anthropology Texas A&M University College Station, TX 77840-4352 -----Original Message----- From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Changrong Ge Sent: Monday, June 6, 2016 12:07 AM To: Douglas Johnson Cc: r-help at r-project.org Subject: Re: [R] How to specify a data frame column using command line arg?> > Hi, > I have recently made similar scatter plot. > Suppose you have a data frame "data.csv" and the first column is not > what you want to plot but rather something informative such as ID, Class, > Group, etc which might not be your case (but would be very nice if you want > to color your scatter plots or add cutoff line, etc). The code below would > work well by printing out figures for all possible column i vs column j. > > for(i in names(data[,-1])){ > for(j in names(data[,-1])){ > > png(paste(i," vs " ,j,".png", sep=""), width=4, height=6, units="in", > res=300) > > plot(data[,i],data[,j],xlab=i,ylab=j,log="xy",pch=16) > > > dev.off() > print(c(i,j)) > } > } > > Good luck > Changrong > > On Sun, Jun 5, 2016 at 9:45 PM, Douglas Johnson <todojo at gmail.com> wrote: > >> I'm guessing this is trivial but I've spent two hours searching and >> reading >> FAQ, tutorial, introductory and 'idiom' documents and haven't found a >> solution. All I want to do is select a data frame column at run time using >> a command line arg. For example, the "test.csv" file contains: >> >> a,b,c >> 1,2,3 >> 4,5,6 >> 7,8,9 >> >> If I run "test.r a", I get [1,4,7]. >> If I run "test.r b", I get [2,5,8]. >> >> Here's sample code -- how I map args[1] to column/vector 'a' or 'b' or >> 'c'? >> >> args <- commandArgs(trailingOnly=T) >> >> adl1<-read.csv(file="test.csv",head=T,sep=",") >> >> adl1$SOME-MAGIC-FUNCTION-OR-SYMBOL(args[1]) >> >> >> All I'm really trying to do is generate a bunch of scatter plots of column >> 'x' vs. 'y' without writing a separate program for each pair. >> >> >> Thanks, >> >> >> Doug >> >> >> >> -- >> http://www.dojopico.org <http://dojopico.org> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >> > > > > -- > > Changrong Ge, PhD > > Division of Medical Inflammation Research > Department of Medical Biochemistry and Biophysics (MBB) > Karolinska Institutet > Scheeles v?g 2, B2 Plan 4 > SE-171 77 Stockholm > Sweden > Tel: +46-8-524 86337 , Mobile: +46-(0)76-2878 029 > Fax: +46-8-524 87750 , Email: changrong.ge at ki.se <changrong at dbb.su.se> > or changrong.ge at gmail.com > >-- Changrong Ge, PhD Division of Medical Inflammation Research Department of Medical Biochemistry and Biophysics (MBB) Karolinska Institutet Scheeles v?g 2, B2 Plan 4 SE-171 77 Stockholm Sweden Tel: +46-8-524 86337 , Mobile: +46-(0)76-2878 029 Fax: +46-8-524 87750 , Email: changrong.ge at ki.se <changrong at dbb.su.se> or changrong.ge at gmail.com [[alternative HTML version deleted]] ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.