2012-09-13 151 views
1

我正在試圖製作一個需要我的數據在矩陣中的barplot。我做了,當我的矩陣看起來像在此之前一些非常好的地塊:從R中刪除索引從矩陣中刪除索引

 0% 20% 40% 60% 80% 
C2 0.22 0.94 1.66 2.38 3.10 
CC -1.38 -0.66 0.06 0.79 1.51 
CCW -1.61 -0.87 -0.13 0.62 1.36 
P -1.13 -0.16 0.81 1.78 2.76 
PF 0.03 0.72 1.42 2.11 2.80 
S2 -2.34 -1.61 -0.88 -0.16 0.57 

對於我的數據的其餘部分,我不得不把它從一個數據幀,這是我沒有使用as.matrix(DF)轉換。此矩陣如下所示:

 trt 2009  2010  2011  
[1,] "C2" "9.0525" " 8.1400" " 8.1400" 
[2,] "CC" "5.4200" " 4.7975" " 4.7975" 
[3,] "CCW" "4.9675" " 4.0400" " 4.0400" 
[4,] "P" "9.3150" "10.3500" "10.3500" 
[5,] "PF" "9.0950" " 3.3375" " 3.3375" 
[6,] "S2" "3.1725" " 3.1125" " 3.1125" 

它不適用於barplot函數。我想我需要刪除索引列,但一直未能。引用是什麼?我雖然矩陣是一個矩陣,所以我不知道這裏發生了什麼。

+0

'as.matrix(yourdata [, - 1])'。因爲第一列是非數字(字符或因子),並且矩陣的列必須是所有相同的類型,所以'as.matrix'將所有數據強制爲字符。 –

回答

2

引號表示您的matrix處於模式character。這是因爲matrix與表面相似的data.frame相反,只能保持一種類型。由於字母數字字符不能轉換爲數字,因此您的矩陣處於character模式。在將其轉換爲matrix之前,我會更容易地刪除第一列,並省卻將矩陣轉換爲numeric

m <- as.matrix(df[, -1]) 

#To add the row.names. 

row.names(m) <- df[, 1] 
+0

謝謝,盧西亞諾!這是有道理的,你的修復就像一個魅力。 – Nazer