几个函数

2021-02-24  本文已影响0人  小森的生统笔记

dimnames

在构建矩阵的时候确定矩阵的行名和列名

dimnames=list(rownames(exp),colnames(exp))
data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=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

参考:avereps相同ID取均值(limma包函数)

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

参考:rowmeans():Use R!

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'

参考R语言中,cbind和rbind区别

上一篇 下一篇

猜你喜欢

热点阅读