2016-11-21 214 views
-1

我的矩陣有問題。 第一行和第一列不是數字。我therfore得到「X必須是數字每次我嘗試做的矩陣東西R.矩陣的非數字矩陣

圖片: Count matrix

矩陣有43列1,000,000線

任何人都可以幫助我定義矩陣?我不想丟失非數字行/列中的信息

我已經在此頁面上看到了有關如何操作的其他示例,但它一直是小矩陣他們已經手動定義了它,因爲我的矩陣很大,所以它不是一個可能y對我來說

+1

嗨,歡迎來到堆棧溢出!當你問一個相關的問題時,你如何問它可以幫助我們爲你提供一個答案。請看[問]來幫助你提問。 –

+0

歡迎來到SO。在提供[最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)時,我想添加幫助以獲得良好和快速的支持。 – gus27

+0

嘿,謝謝。我試圖指定:) – Camilla

回答

1

您可以使用行名和列名來存放非數字數據,同時將矩陣的其餘部分轉換爲數字類型。像這樣的例子:

創建一個虛擬矩陣證明:

m0 = matrix(sample(0:9, 36,T), ncol = 6) 
m0[, 1] = c("",letters[1:5]) 
m0[1, ] = c("",letters[1:5]) 

#  [,1] [,2] [,3] [,4] [,5] [,6] 
#[1,] "" "a" "b" "c" "d" "e" 
#[2,] "a" "5" "6" "2" "0" "7" 
#[3,] "b" "9" "0" "5" "6" "3" 
#[4,] "c" "9" "7" "6" "6" "0" 
#[5,] "d" "5" "5" "7" "8" "3" 
#[6,] "e" "4" "0" "9" "4" "4" 

現在做一個新的矩陣,在其身上的數值,以及所使用的行/列名容納的字符串

m1 = (m0[-1,-1])  # extract just the numeric part of the matrix into a new matrix 
mode(m1) = "numeric" # cast this into numeric rather than character type 
colnames(m1) = m0[1,-1] # use the first row of original as column names 
rownames(m1) = m0[-1,1] # same for row names 

# a b c d e 
# a 5 6 2 0 7 
# b 9 0 5 6 3 
# c 9 7 6 6 0 
# d 5 5 7 8 3 
# e 4 0 9 4 4