R语言报错 Error in y + 1 : non-numeric argument to binary operator 解决记录
因为花了2天半才解决,中间痛苦的寻找,记录一下解决的流程与经验
文章目录
- 报错信息:
- 报错原因:
- 原代码:
- 报错原因解析:
- 1. 转置后数据类型变为character,因为numeric数据中存在character类型的脏数据
- 2. 引入character脏数据的原因
报错信息:
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 = 1colClasses = "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中报错Error in mut[, pos] - 1 : non-numeric argument to binary operator
数据不是数值型,转换成数值型即可解决问题 as.numeric() > sigs.input=mut.to.sigs.input(mut.ref =sample.mut.ref ,sample. ...
- r语言报错|Error in plot.window(...) : ‘xlim‘值不能是无限的
plot()绘制图层时报错 错误提示: Error in plot.window(...) : 'xlim'值不能是无限的 In addition: Warning messages: 1: In m ...
- R语言报错 non-numeric argument to binary operator
R语言对数据框的数据进行求和与平均值,直接计算报错,原代码如下: mydata1 <- mutate(mydata1,sum = sale2015 + sale2016 + sale2017 + ...
- R语言报错:Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : n行没有x元素
今天在使用R语言读取一个txt文件时,报如下错误. > data <- read.table("D:\\StudentTest\\评分.txt", sep=" ...
- 解决R语言报错:Error in make.names(col.names, unique = TRUE) :文件编码不一致的问题
今天在用R语言读取文件的时候,提示了这样的错误: 出现这个问题是因为excel文件的编码方式与读取时的编码方式不统一造成的. 解决方法: 方法一:在excel保存文件的时候,选择UTF-8格式. 方法 ...
- c语言报错 error:1d returned 1 exit status 。(原因:把main写成了mian)
没想到四年后的今天我竟然在重学c语言.唉,一把悲伤泪啊. 言归正传,今天照着书敲代码. 可是一点运行,就一直报错:error:1d returned 1 exit status. 找遍了网上的解决办法 ...
- 关于R语言报错:invalid argument to unary operator(一元运算符的无效参数)---ggplot2画图问题--解决Monte Carlo模拟输出
目录 背景 我的操作(错误 解决问题过程: 1)查找 2)尝试将画图等过程从函数中移出来 3)尝试将+geom_line(aes(y=h_mean-sqrt(h_var))移入到前面的一行中去 结果 ...
- 关于c语言报错error C4996: ‘scanf‘: This function or variable may be unsafe.
关于c语言scanf 这里记录一下复习c语言数据结构时遇到的一些问题: 在VS中编译 C 语言项目,如果使用了 scanf 函数,编译时便会提示如下错误: int x; /*循环输入顺序栈元素用*/D ...
- R语言报错记录The following objects are masked from ‘package:stats’:decompose, spectrum
报错记录
最新文章
- richTextBox1 转到行号
- 必须去收藏14个响应式布局的前端开发框架
- java后台手动分页
- aws mfa 认证_如何为您的AWS账户设置多因素身份验证(MFA)
- 【小程序】微信小程序开发实践
- base64 string 放不下_String、byte[]、Base64相互转换,不要再用错了
- c 语言是一种以解释方式实现的高级语言,高级语言按照计算机执行方式不同可以分为哪两类?它们的执行方式有什么不同,请进行概要说明。...
- Linux之ssh无密码登录
- Ubuntu16.04下修复宿主机时区错位8小时、修复容器相较于宿主机错位8小时问题
- OSChina 周四乱弹 —— 懦夫!你就不能找富婆吗
- iOS上栈溢出崩溃详解
- 匿名飞控码STM32版代码整理之Ano_AttCtrl.c
- 什么是rest?什么是restful?它们之间是什么关系
- 如何快速构建一套稳定、高效、可靠的网页无插件监控、直播、点播解决方案
- 步进电机步距角精度是什么?
- PYNQ Z2一:板子连接与测试
- 卡内基梅隆大学最新研究——使用“耳朵”,而不仅仅是“眼睛”,来提高机器人的感知能力
- mmdetection multi_apply
- flash掉电备份机制
- php如何导出xls表,php如何导出excel表格?
热门文章
- 2020-11-19实习
- 长理2017 f0803 求和:s=1-(1/2)+(1/3)-(1/4).........+(1/n),编写函数fun(char*s),实现字符串的逆置编写程序从基类派生圆柱,设计(均为可运行代码)
- Android 手机上获取物理唯一标识码
- 【51Nod 1463】找朋友
- 技术总结:winform和wpf的区别 以及 项目的“设计规划”
- MMORPG开发之七日创世说(四)
- 运营工作要善于利用工具-短网址
- Unity ECS小知识1 - PhysicsTrigger Event
- React 导航守卫
- CentOS 安装Samba