R語言 實現(xiàn)將數(shù)據(jù)框中的字符類型數(shù)字轉(zhuǎn)換為數(shù)值
場景1
我現(xiàn)在有一個數(shù)據(jù)框datexpr,里面的數(shù)字都是以字符型表示的,像這樣
> datexpr[1,1] [1] " 1.143773961"
現(xiàn)在我想把這個數(shù)據(jù)框中的字符型數(shù)字全部轉(zhuǎn)為數(shù)值型數(shù)字
使用下面語句即可
datexpr2=as.data.frame(lapply(datexpr,as.numeric))
現(xiàn)在再次查看,就是數(shù)值型啦,整個數(shù)據(jù)框中的內(nèi)容也都是數(shù)值型的啦
> datexpr2[1,1] [1] 1.143774
場景2
我現(xiàn)在有一個數(shù)據(jù)框datexp,我想先把它轉(zhuǎn)置之后,然后再把數(shù)據(jù)框內(nèi)的字符型數(shù)字 轉(zhuǎn)換為數(shù)值型數(shù)字
由于轉(zhuǎn)置之后數(shù)據(jù)框變成了矩陣,所以要用data.frame把矩陣又變回數(shù)據(jù)框,同時在轉(zhuǎn)數(shù)據(jù)框的時候一定要加上stringsAsFactors = F
不然之后做數(shù)值型數(shù)字轉(zhuǎn)換的時候,得到的結(jié)果就不是原來的小數(shù),而是一些奇怪的數(shù)字
datexpr<-t(datexp) datexpr<-data.frame(datexpr,stringsAsFactors = F) datexpr2=as.data.frame(lapply(datexpr,as.numeric))
補(bǔ)充:R中利用 apply() 將數(shù)據(jù)框中 factor 類型變量改為數(shù)值型
舉個例子
library(mlbench) data(BreastCancer) str(BreastCancer)
此時輸出為:
BreastCancer1 <- apply(BreastCancer[,2:10],2,as.numeric) # 將2-10列的數(shù)據(jù)變成數(shù)值型 BreastCancer <- data.frame(BreastCancer1, BreastCancer[,11]) names(BreastCancer)[names(BreastCancer) == 'BreastCancer...11.'] <- 'class' str(BreastCancer)
此時輸出結(jié)果為:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
R語言實現(xiàn)對數(shù)據(jù)框按某一列分組求組內(nèi)平均值
這篇文章主要介紹了R語言實現(xiàn)對數(shù)據(jù)框按某一列分組求組內(nèi)平均值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03