我尝试在R中输入数据,但我不知道如何在下面的脚本中将str转换为int。
>countsTable <- read.table("targets.txt")
>matrixTable <- as.matrix(countsTable)
[1,] "hsa-miR-548ax" "0" "1"
[2,] "hsa-miR-548f" "0" "1"
[3,] "hsa-miR-548g-3p" "0" "1"
[4,] "hsa-miR-5589-3p" "0" "1"
[5,] "hsa-miR-5698" "0" "1"
[6,] "hsa-miR-592" "0" "1"
[7,] "hsa-miR-6129" "0" "1"
[8,] "hsa-miR-658" "0" "1"
> normLimma <- normalizeBetweenArrays(matrixTable,method="quantile")
Error in rowMeans(S) : 'x' must be numeric
答案 0 :(得分:2)
使用as.numeric()
快速谷歌搜索提供了一些docs
答案 1 :(得分:2)
read.table
返回一个数据框(根据文档),这与矩阵不同。
我确信你知道,你的数据有三列,只有第二列是数字。当您将数据框从read.table
转换为带as.matrix
的矩阵时,R会将所有内容强制转换为单一类型。
这是因为与数据帧不同,矩阵只能保存单一类型的数据。
你可能想要做的是:
matrixTable <- as.matrix(countsTable[,-1])
删除字符列。
如果您想保留矩阵中的第一列数据,您可能希望将它们存储为行名称:
rownames(matrixTable) <- countsTable[,1]