2020.10.21【R语言】丨 undefined columns selected 问题解决办法

  • 最近做RNA-seq项目的时候准备用R的boxplot()工具画一个各个样品的箱线统计图。
  • 然而,在运行脚本后报错
    • Error in `[.data.frame`(fpkm, , c("MB7409-A", "MB7409-B", "MB7409-C", :
      undefined columns selected
      Calls: [ -> [.data.frame
      Execution halted

  • 抓取数据列的命令哪里错了呢?
  • 打开输入的数据框和脚本做对比
    • 数据是这样的
    • 获取数据列的脚本是这样的
  • 对需要比较的数据列输入应该是正确的,但是为什么会报错?别急,我们用R读取文件后再看看
    • 如图所示
  • 表头的样品名称里的符号“-”居然变成了“.”
  • 原来,特殊符号(如:-、(、?、%等)不能直接被read.table()识别,两个方法:
    • 一个是根据读取文本修改读取列
    • 第二个是可以在read.table()增加check.names=F,避免符号被修改
  • 于是,将脚本重新修改,脚本正常运行,得到箱线图
  • 技巧总结:
    • 1.遇到undefined columns selected 的问题一定是获取列的文本与数据列不对应
    • 2.眼见也不一定为实
      • 特殊符号需要敏感,尽量不要使用特殊符号命名样品;
      • 受兼容性影响,在windows系统生成的文本,在记事本中很多异常符号是显示不出来,可能在liunx系统里不支持(如空格,回车符等);
      • 2021.10.19补充:对于列名,纯数字输入默认会加X,如果设置check.names=F,尽管只显示数字,但仍然是字符串形式,而不是数字。因此,在调取列名的时候需要以字符串形式调用。
  • 欢迎进群讨论RNA-seq流程相关问题,遇见二维码过期可添加VX:bbplayer2021 ,备注 申请加入生信交流群。

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆易青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值