非数字矩阵
问题描述:
我的矩阵有问题。 第一行和第一列不是数字。我therfore得到“X必须是数字每次我尝试做的矩阵东西R.矩阵的非数字矩阵
图片: Count matrix
矩阵有43列1,000,000线
任何人都可以帮助我定义矩阵?我不想丢失非数字行/列中的信息
我已经在此页面上看到了有关如何操作的其他示例,但它一直是小矩阵他们已经手动定义了它,因为我的矩阵很大,所以它不是一个可能y对我来说
答
您可以使用行名和列名来存放非数字数据,同时将矩阵的其余部分转换为数字类型。像这样的例子:
创建一个虚拟矩阵证明:
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
嗨,欢迎来到堆栈溢出!当你问一个相关的问题时,你如何问它可以帮助我们为你提供一个答案。请看[问]来帮助你提问。 –
欢迎来到SO。在提供[最小,完整和可验证的示例](http://*.com/help/mcve)时,我想添加帮助以获得良好和快速的支持。 – gus27
嘿,谢谢。我试图指定:) – Camilla