美文网首页R语言 生信
R语言之输入数据的列名格式问题

R语言之输入数据的列名格式问题

作者: Oodelay | 来源:发表于2019-05-10 09:36 被阅读135次

    昨天帮师妹处理数据,简单的线性拟合,探究βNTI与SOC差异之间的相关性。

    然而,就是这么个简单的问题,竟然翻车了!!!
    而且是数据读取环节, R也没有报错或者提醒。
    幸得师妹通过其他方式验证,才发现了问题所在。

    师妹说,她通过mantel和spss计算的结果,均显示两者显著相关,为啥我做出的结果不相关?

    咦??问题出在哪儿??

    出在数据读取环节!

    因为对数据格式不了解,大眼一看,就直接操作了

    dat = read.table(file.choose(), header = T, row.names = 1)
    

    查看读取的文件


    错误版本

    读取过程无报错或者警示。接着进行后续分析。


    错误版本

    经过两人校对,发现是数据列名格式不统一,导致数据读取出错

    windows记事本中展示数据

    soil fertility是以空格为分隔符,而ses.mntd是以.为分隔符
    read.table()默认是以空格为分隔符,所以,soil fertility一列就被拆成了两列,导致数据发生混乱

    dat = read.table(file.choose(), header = T, row.names = 1,sep = '\t')
    
    正确版本
    正确版本

    教训

    • 数据格式要规范统一,列名不以数字开头,分隔符sep要一致
    • 处理别人的数据,要提前了解数据内容和格式
    • 脚本编写,参数设置规范、严禁

    未解之谜

    在数据读取环节,像这个情况,一列被拆分为两列,那这样会出现数据部分和列名部分维度不一致的情况,R为啥没有报错?而是自定义的从后往前保留列名,将原始数据中的第一个列名给删除了?

    相关文章

      网友评论

        本文标题:R语言之输入数据的列名格式问题

        本文链接:https://www.haomeiwen.com/subject/iacooqtx.html