提供以下数据:
GOBPID Term col1 col2 col3 col4 col5
1 GO:0001659 temperature_homeostasis 3.496906 0 0 0 0
2 GO:0001660 fever_generation 3.226069 0 0 0 0
我尝试创建一个矩阵,其中col1-5(可能大于5)为数字。
目前它看起来像这样:
> dat <- read.table("http://dpaste.com/1486837/plain/",header=TRUE)
> as.matrix(as.numeric(dat))
GOBPID Term col1 col2 col3 col4 col5
[1,] "GO:0001659" "temperature_homeostasis" "3.496906" "0" "0" "0" "0"
[2,] "GO:0001660" "fever_generation" "3.226069" "0" "0" "0" "0"
这样做的方法是什么?
我打算这样做:
GOBPID Term col1 col2 col3 col4 col5
[1,] "GO:0001659" "temperature_homeostasis" 3.496906 0 0 0 0
[2,] "GO:0001660" "fever_generation" 3.226069 0 0 0 0
使用此命令我失败了:as.numeric(as.matrix(dat))
答案 0 :(得分:3)
dat
是data.frame
,而不是matrix
。 data.frame
的列可以有不同的类型。在您的示例中,col1-5的类型已经是数字。亲自尝试一下:
> dat <- read.table("http://dpaste.com/1486837/plain/",header=TRUE)
> sapply(dat, class)
GOBPID Term col1 col2 col3 col4 col5
"factor" "factor" "numeric" "integer" "integer" "integer" "integer"
> dat[,3] + 1
[1] 4.496906 4.226069
> dat[,4] + 1
[1] 1 1