【R分享|提示】 新手踩过的坑,你踩过几个?(下)
我来咯,与大家分享一下剩余的常见报错。Let’s go~
下面是重新以UTF-8格式打开一份代码:
## 这类属于未找到目标变量,但是属于代码错误的问题
library("xlsxjars")
library("rJava")
library("xlsx")
library(openxlsx)
mydata < - read.xlsx("I:\\R language\\R语言郑师兄代码\\图一.xlsx",2)
## 报错信息如下
Error: object 'mydata' not found
## 仔细一看发现是赋值时候的符号被隔断了
## 解决方法
< - 改写成 <-即可
报错结果:
更正展示:
## x和w长度需要一致,即两个矩阵的行列长度要对等
library(vegan)
library(grid)
env=read.csv("env(1)(1).csv", header=T, sep=",", row.names = 1) # read.csv读取csv格式的数据
env=data.matrix(env) # 将数据框转化为矩阵
env[is.na(env)]=0 # 去掉数据为0的值
speciesdata=read.csv("OTU(2).csv", header=T, sep=",")
speciesdata=data.matrix(speciesdata)
speciesdata[is.na(speciesdata)]=0
speciesdata=t(speciesdata)
speciesdata.cca=cca(speciesdata,env) #进行CCA分析
## 报错信息如下
Error in weighted.mean.default(newX[, i], ...) :
'x' and 'w' must have the same length
## 解决办法
## 由于是两个数据框的长度不同,那么只要将两个数据框对齐即可
speciesdata=read.csv("OTU(2).csv",header=T, sep=",") ## 在这行代码添加 row.names=1
speciesdata=read.csv("OTU(2).csv",header=T, sep=",",row.names=1)# 让430列变成429列 与第一矩阵长度相等
错误结果:
更正展示:
个人建议:这类报错--两个数据框/矩阵行列不对等时,我们在每读取一个文件时应该先看看环境中的数据框,可以用鼠标点开数据框,看看数据框读取的结果与自己预期的结果以及在正常excel下打开的是否一致,再去判断在运行代码时能否成功等等。
11)我们在调用程序R包、函数名时,要注意一个小问题--字母的大小写。这里,我直接用例子给大家展示:head ( )、Head ( )以及HEAD ( )这里只有第一个函数名是能够正常运行的,因为在R语言中只存在自带函数名的字母大小写,也就是说,程序中不会默认都是大写或者都是小写。
## R语言程序包大小写错误
library("xlsxjars")
library("rJava")
library("xlsx")
library("Openxlsx")
## 报错信息如下
Error in library("Openxlsx") : there is no package called 'Openxlsx’
## 更正后
library("openxlsx")
## 函数名大小写错误
mydata <- Read.xlsx("I:\\R language\\R语言郑师兄代码\\图一.xlsx",2)
## 报错信息如下
Error in Read.xlsx("I:\\R language\\R语言郑师兄代码\\图一.xlsx", 2) :
could not find function "Read.xlsx"
## 更正大小写后
mydata <- read.xlsx("I:\\R language\\R语言郑师兄代码\\图一.xlsx",2)
## 另外一个example
Head(mydata)
## 报错信息如下
Error in Head(mydata) : could not find function "Head"
## 更正后
head(mydata)
错误结果和更正展示:
12)最后,我将这两个易犯的小错误合一起与大家分享。第一,忘记使用必要的引号;第二,在使用函数名时忘记使用括号。其实,这两类错误可能在之前也有提到一点。但是,这里我单独将他们拿出来讲,考虑到这两类错误新手特别容易犯。但是两类错误也是特别容易解决,只要在写代码的时候稍微小心一点就可以啦~
下面我用一些具体的例子和大家展示:
install.packages(ggplot2)
## 报错信息如下
Error in install.packages : object 'ggplot2' not found
## 解决办法
## 所需安装的程序包加上引号即可
install.packages("ggplot2")
## 使用函数名时需要加括号,例如
help
## 报错信息如下
function (...)
## 解决办法,在函数名后添加括号
help()
## 此外,需要强调并不是所有函数都可以使用空白括号的
特别提醒:并不是所有函数名都可以用 XXX ( )来查询,有的函数名的括号内必须加入目标变量才可以访问。这里举一个简单的例子:例如head ( )
期待您的"分享"点赞"在看"