Yes, I see what you want. I can't run this myself as my work computer runs Windows and insists on starting Statistica when I run an R file in batch mode. What about: plot(adl1[,args[1]],adl1[,args[2]]) I just noticed that you are plotting in ggplot, so this won't help. Maybe: aes(x=args[1], y=args[2]) ? Jim
On Mon, Jun 6, 2016 at 1:29 PM, Douglas Johnson <todojo at gmail.com> wrote:
Hi Jim, Thanks for the quick reply. I was trying to be clear but I think maybe the example was too simple. What I really have is a csv file with lots of columns (let's say 26) with a header (say a,b,c,d,e,,,,,z). I want to generate lots of scatter plots -- 'a' vs. 'b' and 'd' vs 'j' and so on and so on. I don't want to create a separate program for every combination of columns -- that would be hundreds of programs. I just want one program that takes three args -- 1) the csv file name 2) the name of the 'x-axis' column (e.g. 'd') 3) the name of the 'y-asix' column (e.g. 'j') so can run: scatter_plot.r sample01.csv a b scatter_plot.r sample01.csv d j ..... I can't figure out how to get the column names from the args[] to the aes(x=?????, y=?????). There must be some kind of indirect reference or eval() or substitute() operator in R but I can't find it. Anyway, thanks for taking a shot at this. Best, doug On Sun, Jun 5, 2016 at 10:44 PM, Jim Lemon <drjimlemon at gmail.com> wrote:
Hi Doug,
I think this will work for you:
adl1<-read.csv("test.csv")
adl1[,"a"]
[1] 1 4 7
so, adl1[,args[1]] should get you the column that you pass as the
first argument.
Jim
On Mon, Jun 6, 2016 at 5:45 AM, 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.