对于log2,矩阵as.numeric的子集在R中

时间:2011-11-18 22:04:22

标签: r numeric

我的数据矩阵(data)为54675 obs。 170个变量。我想表演

data.matrix.2 <- log2(data[,9:ncol(data)]) 

即。对于第9列及以后的值。之前的8列是字符。我收到以下错误

Error in Math.data.frame(data.matrix[, 9:ncol(data)]) : 
  non-numeric variable in data frame: 

有没有办法将矩阵的子集视为日志转换的.numeric。

由于

1 个答案:

答案 0 :(得分:3)

我的第一个想法是你得到了一个字符矩阵并且需要:

as.numeric(data.matrix.2[ , -(1:8) ])

...但data.matrix()应强制转换为'数字'模式。哦,不,你去吧。你没有使用data.matrix函数....所以最好不要使用名称“data.matrix”,因为这也是R函数的名称。

您正在使用“[,]”,因此您对数据对象的假设可能存在缺陷。必须有一列数据在剩余的162列中创建为因子或字符。你需要运行str(data.matrix)来查看它/它们是哪一个。