On Sun, Jan 24, 2010 at 8:01 PM, William Dunlap
<wdunlap at tibco.com> wrote:
Have you tried using merge? ?E.g., something
like
? PCC <- merge(ptable[c("Gene1", "Gene2"),], table,
By the way, why do you convert the output of
read.table to a matrix? ?Since you have both
character and numeric data columns I think it
would make more sense to leave the dataset as
a data.frame (which read.table produces).
Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
-----Original Message-----
From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org] On Behalf Of Amit
Sent: Sunday, January 24, 2010 10:48 AM
To: r-help at r-project.org
Subject: [R] fetching columns from another file
Hi! All,
I am trying to fetch rows from a data frame which matches
columns of another data frame. Here is the example what I
ptable=read.table(file="All.txt",header=T,sep="\t")
ptable=as.matrix(ptable)
dim(ptable)
? ? ?Gene1 ? ? ? Gene2 ? ? ? PCC ? ? ? ? PCC3 ? ? ? ?PCC23
? ?PCC123
[1,] "3813_f_at" "3884_f_at" "0.9956842" "0.9955455"
"0.9956513" "0.9956171"
[2,] "3884_f_at" "3813_f_at" "0.9956842" "0.9955455"
"0.9956513" "0.9956171"
[3,] "3491_f_at" "3709_f_at" "0.9952116" "0.9951588"
"0.9951601" "0.9950864"
[4,] "3709_f_at" "3491_f_at" "0.9952116" "0.9951588"
"0.9951601" "0.9950864"
[5,] "3371_f_at" "3594_f_at" "0.9946206" "0.9945342"
"0.9946246" "0.9946592"
[6,] "3594_f_at" "3371_f_at" "0.9946206" "0.9945342"
"0.9946246" "0.9946592"
table=read.table(file="All_GPYeast_m.txt",header=T,sep="\t")
table=as.matrix(table)
dim(table)
? ? ?Gene1 ? ? ? Gene2 ? ? ? PCC ? ? ? ? PCC3 ? ? ? ?PCC23
? ?PCC123
[1,] "3491_f_at" "3709_f_at" "0.9953142" "0.9950756"
"0.9954676" "0.9952902"
[2,] "3709_f_at" "3491_f_at" "0.9953142" "0.9950756"
"0.9954676" "0.9952902"
[3,] "3813_f_at" "3884_f_at" "0.9951781" "0.9953901"
"0.9959256" "0.9958152"
[4,] "3884_f_at" "3813_f_at" "0.9951781" "0.9953901"
"0.9959256" "0.9958152"
[5,] "3371_f_at" "3594_f_at" "0.9946130" "0.9938905"
"0.9945572" "0.9945285"
[6,] "3594_f_at" "3371_f_at" "0.9946130" "0.9938905"
"0.9945572" "0.9945285"
Now, I wish to pick column 1&2 from 'ptable' and their coresponding
columns from 'table' and store it in a variable. I did
PCC=apply(ptable[,c(1,2)],1,function(x)table[x[1],x[2]])
Error in FUN(newX[, i], ...) : subscript out of bounds
I was expecting something like this
[1,] "3813_f_at" "3884_f_at" "0.9951781" "0.9953901"
"0.9959256" "0.9958152"
[2,] "3884_f_at" "3813_f_at" "0.9951781" "0.9953901"
"0.9959256" "0.9958152"
---------------------
---------------------
Please, help!
regards
Amit