R 无法将因子转换为数字

R 无法将因子转换为数字,r,numeric,R,Numeric,我接受了开放存取数据,但无法将第5列到第50列转换为数字 file_url <- "https://genelab-data.ndc.nasa.gov/genelab/static/media/dataset/GLDS-138_metabolomics_mx%20367428_NASA_bacteria%20cells_09-2017_submit%20.csv?version=1" dst1 = 'GLDS-138_metabolomics_mx 367428_NASA_bacteria

我接受了开放存取数据,但无法将第5列到第50列转换为数字

file_url <- "https://genelab-data.ndc.nasa.gov/genelab/static/media/dataset/GLDS-138_metabolomics_mx%20367428_NASA_bacteria%20cells_09-2017_submit%20.csv?version=1"
dst1 = 'GLDS-138_metabolomics_mx 367428_NASA_bacteria cells_09-2017_submit.csv'
download.file(file_url, dst1)
Bdata <- read.csv(dst1, stringsAsFactors = FALSE)

Bdata <- t(Bdata)
Bdata <- Bdata[-c(2:7, 114:118),]
Bdata <- Bdata[,-c(1,2,6,8)]
Bdata[1,1:4] <- Bdata[2,1:4]
Bdata <- Bdata[-c(2),]

columnName <- Bdata[1,]
rowName    <- Bdata[,1]
colnames(Bdata) <- columnName
rownames(Bdata) <- rowName
Bdata <- Bdata[-1 ,]
Bdata <- as.data.frame(Bdata)

Bdata[,5:50] <- as.numeric(as.character(Bdata[,5:50]))

file\u url您需要此代码而不是最后一行代码:

Bdata[,5:50] <- as.data.frame(lapply(Bdata[,5:50], function(x) as.numeric(as.character(x))))

Bdata[,5:50]您可以尝试以下代码

Bdata[,5:50]<- `class<-`(as.matrix(Bdata[,5:50]),"numeric")

Bdata[,5:50]哦,哇,这似乎奏效了。为什么原始代码不能工作?更简单:
Bdata[5:50]True。很好的补充。嘿,谢谢你提供了一个可复制的例子。如果这个例子是一个最小的可复制的例子,那么这个例子会更好。700个变量x 100个观测值有点过分了哦,对了,下次我会记住的!谢谢