解决R语言报错:Error in y + 1:non-numeric argument to binary operator

 更新时间:2022年11月04日 09:51:31   作者:白尔特  
R语言编程中的常见错误有一些错误是R的初学者和经验丰富的R程序员都可能常犯的,下面这篇文章主要给大家介绍了关于解决R语言报错:Error in y + 1:non-numeric argument to binary operator的相关资料,需要的朋友可以参考下

因为花了2天半才解决,中间痛苦的寻找,记录一下解决的流程与经验

报错信息:

1Error in y + 1 : non-numeric argument to binary operator

报错原因:

数据不是可计算的 numeric 或 integer 类型

原代码:

图片描述

a = read.table(file = study.txt", sep = "\t",
  header = T, row.names = 1
  )
class(a[3, 3])    # integer
aa = t(d)
class(aa[3, 3])   # character
b = sparcc(aa)
# 出现报错
Error in y + 1 : non-numeric argument to binary operator

报错原因解析:

1. 转置后数据类型变为character,因为numeric数据中存在character类型的脏数据

(原因:转置函数t() 是先将dataframe转换为矩阵matrix,而matrix只有一种数据类型。所以如果存在character,所有数据都会被转换成character)

如何发现是否有character脏数据:

read.table设置参数colClasses = “numeric”(确保数据框内只有numeric类型)

a = read.table(file = study.txt", sep = "\t",
  header = T, row.names = 1
  colClasses = "numeric"   # 添加的参数
  )
  
  # 出现报错
  Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  : 
  scan() expected 'a real', got 'f__Cenarchaeaceae'

报错意为 数据框内存在“f__Cenarchaeaceae”,不属于numeric

查看txt内部

2. 引入character脏数据的原因

# 后续分析需要:设置data第一列列名为空格
genus <- data[1]
colnames(genus) <- " "
# 根据列名提取子集
 a <- subset(data, select = (disID[, 1]))

subset()函数将列名为 空格blank 的也提取了,导致了character脏数据的进入

总结

到此这篇关于解决R语言报错:Error in y + 1:non-numeric argument to binary operator的文章就介绍到这了,更多相关R语言报错1Error in y + 1 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • R语言中devtools的使用详解

    R语言中devtools的使用详解

    这篇文章主要介绍了R语言中devtools的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言向量下标操作

    R语言向量下标操作

    这篇文章主要介绍了R语言向量下标操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言histogram(直方图)的具体使用

    R语言histogram(直方图)的具体使用

    这篇文章主要介绍了R语言histogram(直方图)的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • R语言实现二进制文件读写操作

    R语言实现二进制文件读写操作

    这篇文章主要介绍了R语言实现二进制文件读写操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • R语言实现将分类变量转换为哑变量(dummy vairable)

    R语言实现将分类变量转换为哑变量(dummy vairable)

    这篇文章主要介绍了R语言实现将分类变量转换为哑变量(dummy vairable),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言中向量和矩阵简单运算的实现

    R语言中向量和矩阵简单运算的实现

    这篇文章主要介绍了R语言中向量和矩阵简单运算的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • R语言-t分布正态分布分位数图的实例

    R语言-t分布正态分布分位数图的实例

    这篇文章主要介绍了R语言-t分布正态分布分位数图的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言之dplyr包常用函数方法示例学习

    R语言之dplyr包常用函数方法示例学习

    这篇文章主要为大家介绍了R语言之dplyr包常用函数方法示例学习详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • R语言学习笔记之plot函数

    R语言学习笔记之plot函数

    plot()函数是R中最基本的绘图函数,其实最简单、最基础的函数,这也就意味着其具有更多的可操作性,下面这篇文章主要给大家介绍了关于R语言学习笔记之plot函数的相关资料,需要的朋友可以参考下
    2022-10-10
  • R语言编程数学分析重读微积分微分学原理运用

    R语言编程数学分析重读微积分微分学原理运用

    这篇文章主要介绍了R语言编程数学分析重读微积分微分学的原理运用,有需要的朋友可以借鉴参考下,希望能够有=有所帮助,祝大家多多进步
    2021-10-10

最新评论