【已解决】R语言添加行、列,转置操作
嚴格來說,矩陣的長度和維度是固定的,因此不能增加或刪除行或列。但是可以給矩陣重新賦值,這樣可以得到和增加或刪除一樣的效果。
?
????函數rbind()(代表row?bind,按行組合)和函數cbind()(代表column?bind,按列組合)可以給矩陣增加行或列。
>?one?<-?c(?1,?1,?1,?1?)
>?z?<-?matrix(?c(?1,?2,?3,?4,?1,?1,?0,?0,?1,?0,?1,?0?),nrow=4?)
>?cbind(?one,?z?)
?????one??????
[1,]???1?1?1?1
[2,]???1?2?1?0
[3,]???1?3?0?1
[4,]???1?4?0?0
?
>?cbind(?2,?z?)
?????[,1]?[,2]?[,3]?[,4]
[1,]????2????1????1????1
[2,]????2????2????1????0
[3,]????2????3????0????1
[4,]????2????4????0????0
注:這里用到了循環補齊(recycling)。
????這里,cbind()把一列由1組成的向量和z組合在一起,創建了一個新矩陣。
?
????不過,請謹慎使用cbind()!和創建向量一樣,創建一個新的矩陣是很耗時間的(畢竟矩陣也屬于向量)。創建新矩陣會減低程序速度,如果在循環中重復創建矩陣,將浪費大量的時間。因此在循環中每次往矩陣中添加一行(列),最后矩陣會變成一個大矩陣,這種做法是不可取的,最好一開始就定義好一個大矩陣。這個事先定義的矩陣是空的,但是在循環過程中逐行或列進行賦值,這種做法避免了循環過程中每次進行耗時的矩陣內存分配。
處理矩陣轉置問題:
> tx<- read.table("x.txt", header=FALSE)
> ty<- t(tx)
> write.table(ty, file="D:/ty.txt", quote-F, col.name=F, row.names=F)
參考文章:
http://blog.csdn.net/thoixy/article/details/40502829
總結
以上是生活随笔為你收集整理的【已解决】R语言添加行、列,转置操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于RNA-seq数据集的小结
- 下一篇: 【图解】机器学习