无法将因子转换为数字

问题描述 投票:0回答:1

我获取了开放式访问数据,但是无法将第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]))

我已经尝试了许多方法,其中大多数强制使用NA或更改信息。

任何人都知道如何解决这个问题?

r numeric
1个回答
0
投票

您需要此代码,而不是最后一行代码:

Bdata[,5:50] <- as.data.frame(lapply(Bdata[,5:50], function(x) as.numeric(as.character(x))))
© www.soinside.com 2019 - 2024. All rights reserved.