函数"/>
R语言编写函数
基本思路参考此文章:
在这片博文中涉及到list相关知识,很受用!
这几天在编写R函数,也遇到了一些问题,在此记录一下
1、如何返回一个list结构?
其实也就是涉及到list合并问题。我在每次循环中会得到一个数据框结构
#数据框转化为列表格式
datalist=list(data)
#合并列表
result=c(result,datalist)
(需在循环前定义result=list() )
#给列表中的数据起名
names(result)=nameList
2、函数的参数可以是任意类型吗?
可以。
我的函数只有一个参数,但是在调用时需要传入数据框结构或者列表结构
只需要在函数里判断一下,传入的数据结构,然后不同结构使用不同的过程。
if(class(data)=="data.frame")
或if(class(data)=="list")
3、报错:找不到(...)对象
出现这个问题就说明了在函数体里边有写错的变量名(完全是马虎的问题)
4、判断某个变量是否在一个向量里
用%in%
5、获取数据框的名字
setdataName=as.character(substitute(setdataList))
6、如何终止函数,并跳出?
用stop(),加上call.=FALSE可以防止有其他系统提示,只输出自己写的内容
stop("想要输出的错误信息","\n",call.=FALSE)
7、R语言中的trycatch
a<-tryCatch(
{
#命令
........
},error=function(e)#error=function(e)提示出错/warming=function(w)有警告
{
#报错信息(自己写,我现在觉得用cat相当方便!)
cat("失败","\n")
})
8、禁止系统警告:options(warn=-1)
9、在调用一个系统函数时,若成功,返回NULL,失败则报错,但是自己想设置为,成功返回1,失败返回0
主要是改trycatch那块,
tryCatch(
{
#命令
..................
cond=1
},error=function(e)
{
#报错信息
.......................
})
if(length(cond)==0)
{cond=0}
更多推荐
R语言编写函数
发布评论