[R] Some issues with operations
arun
smartpink111 at yahoo.com
Fri Sep 27 16:11:38 CEST 2013
HI Vivek,
I think there is only one row in the whole dataset which fulfills the condition. If you need the dimension intact, use 'drop=FALSE'
which(rowSums(mat1>0)==ncol(mat1))
#CXCL14
# 2349
#Simplied some codes:
dat1<- read.table("FPKM_RZvsRP_expmat2_v3.txt",sep="\t",header=TRUE,stringsAsFactors=FALSE)
dat2<- dat1
dat2[,13:22]<-lapply(list(c(2,3),c(4,7),c(4,8),c(5,7),c(5,8),c(6,7),c(6,8),c(9,12),c(10,12),c(11,12)),function(x) {dat2[,x[1]] - dat2[,x[2]]} )
colnames(dat2)[13:22]<-gsub("__","_",paste(c("p118",paste(rep("p132",6),c("",1:5),sep="_"),paste(rep("p91",3),c("",1:2),sep="_")),"diff",sep="_"))
mat1<- as.matrix(dat2[,13:22])
row.names(mat1)<- dat2[,1]
res<-mat1[rowSums(mat1>0)==ncol(mat1),,drop=FALSE]
res
# p118_diff p132_diff p132_1_diff p132_2_diff p132_3_diff p132_4_diff
#CXCL14 3.606171 1.241455 2.023101 1.413141 2.194787 0.5763301
# p132_5_diff p91_diff p91_1_diff p91_2_diff
#CXCL14 1.357977 3.485148 8.938696 6.29492
dim(res)
#[1] 1 10
A.K.
________________________________
From: Vivek Das <vd4mmind at gmail.com>
To: arun <smartpink111 at yahoo.com>
Sent: Friday, September 27, 2013 5:36 AM
Subject: Some issues with operations
HI Arun,
I am facing some issues with the matrix operation in R. I am having a matrix with some genes and their corresponding expression values between samples. I am trying to see the the difference in expression values of the columns. Then making a matrix which will contain the whole data and its corresponding differences. Then am extracting only the difference of the columns I computed in a matrix and trying to separate the positive and the negative differences. I have worked with this earlier and I have not faced any issue. I have also applied it to other samples and they work perfectly fine. But I donot know this time its failing. I tried with other matrix I performed earlier and still they work. Somewhere here it does not. Can you please let me know where I am getting wrong ? I am sending you the code snippet and the matrix so that it makes sense to you.
Code:
##### to check the transition from RZ to RP - 91 rz,118rz, 132rz1,132rz2 Vs 91rp1, 91rp3, 91rp4, 118rp3,132rp1, 132rp3, 132rp4
data<-read.table("",sep='\t', header=T)
#calculate differences
p118_diff<-c(as.numeric(data[,2])-as.numeric(data[,3]))
p132_diff<-c(as.numeric(data[,4])-as.numeric(data[,7]))
p132_1_diff<-c(as.numeric(data[,4])-as.numeric(data[,8]))
p132_2_diff<-c(as.numeric(data[,5])-as.numeric(data[,7]))
p132_3_diff<-c(as.numeric(data[,5])-as.numeric(data[,8]))
p132_4_diff<-c(as.numeric(data[,6])-as.numeric(data[,7]))
p132_5_diff<-c(as.numeric(data[,6])-as.numeric(data[,8]))
p91_diff<-c(as.numeric(data[,9])-as.numeric(data[,12]))
p91_1_diff<-c(as.numeric(data[,10])-as.numeric(data[,12]))
p91_2_diff<-c(as.numeric(data[,11])-as.numeric(data[,12]))
diff_m<-cbind(data,p118_diff,p132_diff,p132_1_diff,p132_2_diff,p132_3_diff,p132_4_diff,p132_5_diff,p91_diff,p91_1_diff,p91_2_diff)
##select all the positive differences
mat1<- as.matrix(diff_m[,13:22])
row.names(mat1)<- diff_m[,1]
res1<-mat1[rowSums(mat1>0)==ncol(mat1),]
head(res1)
In the above rest computation it is failing. as it cant give correct dimension for res1. I only get one row with 1 columns which should not be the idea case. I should get all the positive differences across all samples from the mat1 matrix. Can you please guide me where I am getting wrong? I am also attaching the matrix so that it works for you and you can understand where I am getting wrong.
----------------------------------------------------------
Vivek Das
PhD Student in Computational Biology
Giuseppe Testa's Lab
European School of Molecular Medicine
IFOM-IEO Campus
Via Adamello, 16
Milan, Italy
emails: vivek.das at ieo.eu
vchris_05 at yahoo.co.in
vd4mmind at gmail.com
More information about the R-help
mailing list