学术资讯 » 学术资源

  • 首 页
  • 期刊选题
  • 期刊点评
  • 期刊大全
  • 学人博客
  • 编辑征稿
  • 投稿选刊
  • 万维群组
  • 学术会议
  • 万维读书
  • SCI/E期刊
  • SSCI期刊
  • AHCI期刊
  • 跑数据的时候怎么Debug | 菜鸡版

    阅读: 2022/5/6 15:53:15

    原创 双鸭山科研小黑屋 双鸭山科研小黑屋 2022-05-05 19:00

    作者:小黑屋某菜鸡

    开始前一定要讲明白菜鸡的概念:所有的bug都来源于个人的脑残行为,所有debug的延后,都来源于对自己不清晰的认知:

    接下来小黑屋某菜鸡用个人亲身经验传授如何避免天天干蠢事??(所以这篇又叫做:别一天天净干蠢事,做个人吧!)

    事情是这样子的

    在一个月黑风高的夜晚,小黑屋某菜鸡的数据需要进行倾向性匹配分析,需要用R语言来跑代码。菜鸡在遍布网络教程之后,精心选择了Matchlt这个R包。

    在第一次使用某R包时,你需要先下载它。菜鸡哒哒两下,自信地打下回车键:

    “Not Available”?难道这个R包过期了?菜鸡半信半疑地打开了这个包的使用手册:

    难道是我的R太过落后?

    菜鸡卡壳了:那也不是呀!

    这时候聪明的小朋友可能已经发现了华点:有没有可能是名字打错了?毕竟在等线体中大写的i和小写的L是一模一样的呀!

    菜鸡当然没有想到这个浅而易见的错误,但Ta在盲目地刷着使用说明时,

    突然看到了如下的标志:

    人家不已经给你用非等线体标出来:这是个I(Ai)吗!

    小黑屋某菜鸟哭唧唧地把L换成i,然后发现代码如丝般顺滑地跑下去了,深刻觉悟菜鸡的痛苦在如此细微之处。

    可能聪明的小朋友以为,菜鸡会吃一堑,长一智。

    但在几天后,小黑屋某菜鸡又又又遇到一个bug,需要对建立好的模型进行predict计算。

    结果显示没有找到change这个变量。

    因为代码中没有指定数据集的来源,所以菜鸡就认为这个是报错的原因,在change前面标注出来数据集的来源。

    也报错了!菜鸡又想了想,因为这个调用的是模型的变量,所以前面的标注应该是模型的来源,菜鸡又把change前面的数据来源调整了一下。

    咦!这次倒是没有报错,但是为什么数据类型是一连串的数值?

    按照预期的结果应该是一个数据框,采取其中的数值进行后期的运算。

    菜鸡百思不得其解,最后没办法之下只能再次盲目地刷着使用说明,最后灵机一动,难道我大小写写错了?

    换了Predict后,虽然没有标明change的数据来源,但代码没有报错,也得到预期的结果。

    原来Predict是rms的内部函数,调用rms函数来计算预测值,全称其实应该是rms::Predict。

    而predict是r的内置函数,根据后期的设定进行模型预测值计算。

    真相大白,简单的字母大小写却代表了不同的R代码逻辑。

    其实每个R语言工作人都需要经过这个低级的Debug经历,在代码世界中,差之毫厘,谬以千里,需要对自己打的每个字母都谨慎小心,bug可能就藏于其中。

    在最后菜鸡总结一下自己初学R语言的一些Debug心得

    1、R本身会提示错误,没有error就意味着成功的到来。

    2、在升级R版本后,记得把R包的版本也升级一下,避免不必要的时间浪费在各种error上面,最后却发现是版本不适配。

    3、在实用新的R包之前,可以先把R包的使用说明,标重点,示范案例看清楚,直接复制说明上的代码进行修改,可以避免很多拼写错误。

    4、再三确认代码没错后,反复看自己的数据,代码没错就一定是数据错误,可能是变量的格式,也可能是表格的形式,曾经多重插补一直失败,考虑是id编码干扰了插补的底层计算逻辑,删除id编码后果然成功了。

    5、如果看不懂error的提示,复制黏贴百度、google及万能GitHub,Internet会帮助你的。

    6、有时候反复思考都找不到bug,可以先睡一觉转换思考角度,或者发给万能的师兄看一看, bug自然浮现。

    祝大家的所有代码都可以如丝般顺滑,never warning,never error。

    如有侵权,请联系本站删除!


    浏览(406)
    点赞(0)
    收藏(0)
  • 上一篇:北京科技大学科学技术研究院:关于疫情防控期间科研业务服务安排的通知

    下一篇:北京大学董蜀湘课题组《AFM》,“磁-机-电耦合能量采集”研究方面取得新进展

  • 首页

  • 文章

  • 期刊

  • 帮助

  • 我的

版权所有 Copyright@2023    备案号:豫ICP备2021036211号