R語言 實現將數據框中的字符類型數字轉換為數值

場景1

我現在有一個數據框datexpr,裡面的數字都是以字符型表示的,像這樣

> datexpr[1,1]
[1] " 1.143773961"

現在我想把這個數據框中的字符型數字全部轉為數值型數字

使用下面語句即可

datexpr2=as.data.frame(lapply(datexpr,as.numeric))

現在再次查看,就是數值型啦,整個數據框中的內容也都是數值型的啦

> datexpr2[1,1]
[1] 1.143774

場景2

我現在有一個數據框datexp,我想先把它轉置之後,然後再把數據框內的字符型數字 轉換為數值型數字

由於轉置之後數據框變成瞭矩陣,所以要用data.frame把矩陣又變回數據框,同時在轉數據框的時候一定要加上stringsAsFactors = F

不然之後做數值型數字轉換的時候,得到的結果就不是原來的小數,而是一些奇怪的數字

datexpr<-t(datexp)
datexpr<-data.frame(datexpr,stringsAsFactors = F) 
datexpr2=as.data.frame(lapply(datexpr,as.numeric))

補充:R中利用 apply() 將數據框中 factor 類型變量改為數值型

舉個例子

library(mlbench)
data(BreastCancer)
str(BreastCancer)

此時輸出為:

BreastCancer1 <- apply(BreastCancer[,2:10],2,as.numeric)  # 將2-10列的數據變成數值型
BreastCancer <- data.frame(BreastCancer1, BreastCancer[,11])  
names(BreastCancer)[names(BreastCancer) == 'BreastCancer...11.'] <- 'class'
str(BreastCancer)

此時輸出結果為:

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: