当前位置 博文首页 > 文章内容

    R语言 实现将数据框中的字符类型数字转换为数值

    作者:shunshunshun18 栏目:未分类 时间:2021-03-27 14:43:06

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    场景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)

    此时输出结果为:

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持IIS7站长之家博文。如有错误或未考虑完全的地方,望不吝赐教。