场景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)
此时输出结果为:
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。
因篇幅问题不能全部显示,请点此查看更多更全内容