dimnames
在构建矩阵的时候确定矩阵的行名和列名
dimnames=list(rownames(exp),colnames(exp))
data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)
函数实例
参考:R 函数笔记 | dimnames(), dim(), provideDimnames()
avereps
相同ID的数值取均值
data=avereps(data)
data=data[rowMeans(data)>0,]
相同type取均值
> dat
type Num1 Num2
1 A 90 89
2 B 34 32
3 C 56 53
4 D 99 95
5 E 15 10
6 A 50 44
7 B 20 13
8 C 24 16
9 D 70 61
10 E 14 4
> avereps(dat[,-1],ID=dat$type)
Num1 Num2
A 70.0 66.5
B 27.0 22.5
C 40.0 34.5
D 84.5 78.0
E 14.5 7.0
rowmeans
计算每行的均值
如上图中使用rowmeans保证每行表达量平均值为整数
示例
>C1<-c(3,2,4,4,5)
> C2<-c(3,7,3,4,5)
> C3<-c(5,4,3,6,3)
> DF<-data.frame(ID=c("A","B","C","D","E"),
C1=C1,C2=C2,C3=C3)
> DF
ID C1 C2 C3
1 A 3 3 5
2 B 2 7 4
3 C 4 3 3
4 D 4 4 6
5 E 5 5 3
> data.frame(ID=DF[,1], Means=rowMeans(DF[,-1]))
ID Means
1 A 3.666667
2 B 4.333333
3 C 3.333333
4 D 4.666667
5 E 4.333333
cbind & rbind
cbind根据列进行合并,col~
rbind根据行进行合并,row~
#输出结果
out=rbind(ID=colnames(geneExp),geneExp)
write.table(out,file="immGeneExp.txt",sep="\t",quote=F,col.names=F)
这一不是为了使输出的表格有表头
示例
> a <- matrix(1:12, 3, 4)
> print(a)
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
>
> b <- matrix(-1:-12, 3, 4)
> print(b)
[,1] [,2] [,3] [,4]
[1,] -1 -4 -7 -10
[2,] -2 -5 -8 -11
[3,] -3 -6 -9 -12
>
> x=cbind(a,b)
> print(x)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 4 7 10 -1 -4 -7 -10
[2,] 2 5 8 11 -2 -5 -8 -11
[3,] 3 6 9 12 -3 -6 -9 -12
>
> y=rbind(a,b)
> print(y)
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
[4,] -1 -4 -7 -10
[5,] -2 -5 -8 -11
[6,] -3 -6 -9 -12
>
>
> c <- matrix(-1:-20, 4, 5)
> print(c)
[,1] [,2] [,3] [,4] [,5]
[1,] -1 -5 -9 -13 -17
[2,] -2 -6 -10 -14 -18
[3,] -3 -7 -11 -15 -19
[4,] -4 -8 -12 -16 -20
>
> x2=cbind(a,c)
Error in cbind(a, c) : 矩阵的行数必需相符(见arg2)
> print(x2)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 1 4 7 10 -1 -4 -7 -10 -13
[2,] 2 5 8 11 -2 -5 -8 -11 -14
[3,] 3 6 9 12 -3 -6 -9 -12 -15
>
> y2=rbind(a,c)
Error in rbind(a, c) : 矩阵的列数必需相符(见arg2)
> print(y2)
Error in print(y2) : 找不到对象'y2'
网友评论