[R] How to specify a data frame column using command line arg?

David L Carlson dcarlson at tamu.edu
Mon Jun 6 17:52:18 CEST 2016


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
> colnos
     Var1 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.


More information about the R-help mailing list