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。如有錯誤或未考慮完全的地方,望不吝賜教。