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