[R] Creating a Hash from Data.Frame

hadley wickham h.wickham at gmail.com
Mon Jun 16 06:09:33 CEST 2008


On Sun, Jun 15, 2008 at 9:03 PM, jim holtman <jholtman at gmail.com> wrote:
> here is a way:
>
>> x <- read.table(textConnection("#GDS_ID GENE_NAME GENE_DESCRIPTION GENE_FUNCTION
> + 1007_s_at | DDR1 | discoidin domain receptor tyrosine kinase 1 |
> protein-coding
> + 1053_at | RFC2 | replication factor C (activator 1) 2, 40kDa | protein-coding
> + 117_at | HSPA6 | heat shock 70kDa protein 6 (HSP70B') |
> protein-coding"), sep="|",
> + strip.white=TRUE, quote='')   # you need strip.white on the call
>> closeAllConnections()
>> str(x)
> 'data.frame':   3 obs. of  4 variables:
>  $ V1: Factor w/ 3 levels "1007_s_at","1053_at",..: 1 2 3
>  $ V2: Factor w/ 3 levels "DDR1","HSPA6",..: 1 3 2
>  $ V3: Factor w/ 3 levels "discoidin domain receptor tyrosine kinase
> 1",..: 1 3 2
>  $ V4: Factor w/ 1 level "protein-coding": 1 1 1
>> x
>         V1    V2                                          V3             V4
> 1 1007_s_at  DDR1 discoidin domain receptor tyrosine kinase 1 protein-coding
> 2   1053_at  RFC2 replication factor C (activator 1) 2, 40kDa protein-coding
> 3    117_at HSPA6        heat shock 70kDa protein 6 (HSP70B') protein-coding
>> mydata <- character()
>> mydata[as.character(x$V2)] <- as.character(x$V3)
>> mydata["RFC2"]  #access the data
>                                         RFC2
> "replication factor C (activator 1) 2, 40kDa"

Or even more simply:

rownames(x) <- x$V2
x["RFC2", ]

Hadley

-- 
http://had.co.nz/



More information about the R-help mailing list