56
當我將一個矩陣子集到一個列時,結果是類數字,而不是矩陣(即myMatrix [,5]子集到第五列)。有沒有一種緊湊的方式子集的單個列,保持矩陣格式,並保持不做某事行/列名複雜的東西:如何將矩陣子集劃分爲一列,維護矩陣數據類型,維護行列名?
matrix(myMatrix[ , 5 ] , dimnames = list(rownames(myMatrix) , colnames(myMatrix)[ 5 ])
當我將一個矩陣子集到一個列時,結果是類數字,而不是矩陣(即myMatrix [,5]子集到第五列)。有沒有一種緊湊的方式子集的單個列,保持矩陣格式,並保持不做某事行/列名複雜的東西:如何將矩陣子集劃分爲一列,維護矩陣數據類型,維護行列名?
matrix(myMatrix[ , 5 ] , dimnames = list(rownames(myMatrix) , colnames(myMatrix)[ 5 ])
使用drop=FALSE
參數[
。
m <- matrix(1:10,5,2)
rownames(m) <- 1:5
colnames(m) <- 1:2
m[,1] # vector
m[,1,drop=FALSE] # matrix
我會發誓我看到這只是最近,但它可能已被認爲受到了質疑類似的數據幀的行爲:http://stackoverflow.com/questions/6941985/r-how-to-subset-a -data-frame-in-a-list-and-return-data-frame –
太棒了! – SFun28
如果你想索引只有第一維,你可以使用drop如下:'m [1,,drop = FALSE]' –