[R] How to get an argument dynamically from a list?

jim holtman jholtman at gmail.com
Sun Jun 29 16:06:58 CEST 2008


Is this what you want:

you have to use data.raw[[polyList[2]]] to access the data.  (see ?"[[")

> lapply(polyList, function(x) as.character(data.raw[[x]]))
[[1]]
[1] "A/A" "A/A" "A/A" "A/C" "A/C"

[[2]]
[1] "C/C" NA    "C/A" "C/C" "C/A"

[[3]]
[1] "15/27"  "13/12"  "154/35" "15/12"  "13/12"



On Sun, Jun 29, 2008 at 3:24 PM, Stephane Bourgeois <sb20 at sanger.ac.uk> wrote:
> Hi,
>
> I'd like to get an argument (I think it's the right term) dynamically from a list, but cannot manage to do it.
>
> Here is the code I use:
>
> #output given by database
>
> BOB <- c('A/A', 'C/C', '15/27')
> MARY <- c('A/A', NA, '13/12')
> JOHN <- c('A/A', 'C/A', '154/35')
> CLIFF <- c('A/C', 'C/C', '15/12')
> PAM <- c('A/C', 'C/A', '13/12')
> sampleList <- c("BOB", "MARY", "JOHN", "CLIFF", "PAM")
> polyList <- c("rs123", "rs124", "rs555")
>
> #make dataframe with data
>
> data.raw <- data.frame(t(do.call(data.frame, lapply(sampleList, get))))
> names(data.raw) <- polyList
> row.names(data.raw) <- sampleList
>
> I want to get, for example, data.raw$rs124 using polyList.
>
> I tried
>
>> get(paste("data.raw$", polyList[2], sep=""))
> Error in get(paste("data.raw$", polyList[2], sep = "")) :
>  variable "data.raw$rs124" was not found
>
> but it's obviously not the right way, data.raw$rs124 not being a variable per se.
>
> Any idea about how I could do that?
>
> Thanks,
>
> Stephane
>
> ______________________________________________
> 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.
>
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?



More information about the R-help mailing list