R语言:自定义函数

R语言系列:自定义function

在用R语言做各种事物时,用户自定义函数是不可或缺的。这期来讲讲如何自定义R的function。首先要介绍的是function的基本框架:

myfunction <- function(arg1, arg2, ... ){
statements
return(object)
}
  • 函数名称为myfunction
  • arg1,arg2 为参数
  • statements 为函数语句
  • return(object)返回结果

两个例子

例子一:随机数产生,画图
function1 <- function(x,y){
  plot(x,y)
  return(x+y)
}
> x <- rnorm(10)
> y <- rnorm(10,2,3)
> function1(x,y)

[1]  1.5828019  0.2661017 -2.7666838  9.9395144  3.3619610 -0.9452065 -6.4638374 -0.3288615  1.1402272
[10] -0.1285368
出结果图

plot图

例子二:判断、条件句
function2 <- function(x,npar=TRUE,print=TRUE) {
  if (!npar) {
    center <- mean(x); spread <- sd(x) 
  } else {
    center <- median(x); spread <- mad(x) 
  }
  if (print & !npar) {
    cat("Mean=", center, "\n", "SD=", spread, "\n")
  } else if (print & npar) {
    cat("Median=", center, "\n", "MAD=", spread, "\n")
  }
  result <- list(center=center,spread=spread)
  return(result)
}


> x<-rnorm(10,0,1)
> function2(x)
Median= 0.2469624 
 MAD= 1.161068 
$center
[1] 0.2469624

$spread
[1] 1.161068

总结

看懂这两,基本的函数应该可以实现,稍微复杂的,或别的更加复杂的函数,那就需要经验了。多练习多写代码是实现快速写代码的重要途径!

  • 19
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
回答: 在R语言中,用户可以通过自定义函数来实现各种功能。自定义函数的基本框架如下所示:myfunction <- function(arg1, arg2, ... ){ statements return(object) }其中,myfunction是函数的名称,arg1、arg2等是函数的参数,statements是函数的语句,return(object)用于返回结果。例如,下面是一个随机数产生并画图的自定义函数的例子:function1 <- function(x,y){ plot(x,y) return(x+y) }当我们调用这个函数时,需要提供参数x和y,然后函数会绘制出对应的图形,并返回x和y的和。另外,RStudio还提供了函数抽取的功能,可以将选中的代码段抽取为一个函数,并自动设置参数。这样可以提高代码的可读性和重用性。 #### 引用[.reference_title] - *1* [R语言系列:自定义function](https://blog.csdn.net/weixin_33920401/article/details/86250299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [R语言-编写自定义函数](https://blog.csdn.net/xiaohukun/article/details/76056366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值