R语言学习笔记

《R语言实战》学习笔记---Chapter5(8) 高级数据管理

2023-08-24  本文已影响0人  RSP小白之路

R作为一门编程语言,可以自行编写函数,很合理吧。

function自编函数

R中的许多函数都是包含了已有函数。看一下自行编写函数的的语句基本结构:

funname <- function(arg1, arg2, arg3, ...) {
  statements
  return(object)
}

函数可以添加默认参数。函数中的对象只在函数内部使用。 也可以用return函数返回R对象,返回对象的数据类型是任意的, 从标量到列表皆可

继续在使用例子中进行学习,使用书中的例子,编写一个函数, 用来计算数据对象的集中趋势和散布情况。 此函数应当可以选择性地给出参数统计量(均值和标准差) 和非参数统计量(中位数和绝对中位差) 。


mystats <- function(x, parametric=TRUE, print=FALSE) {
  if (parametric) {
    center <- mean(x); spread <- sd(x)
  } else {
    center <- median(x); spread <- mad(x)
  }

  if (print & parametric) {
    cat("Mean=", center, "\n", "SD=", spread, "\n")
  } else if (print & !parametric) {
    cat("Median=", center, "\n", "MAD=", spread, "\n")
  }
  
  result <- list(center=center, spread=spread)
  return(result)
}

> set.seed(1234)
> x <- rnorm(50)
> mystats(x)
$center
[1] -0.453053

$spread
[1] 0.8850435

说明一下,parametric=TRUE默认值为真,为真则计算平均值和方差; print=FALSE默认值为假,即不打印cat中的内容;return(result)函数表示返回一个列表对象,包含输入数据的集中趋势和离散趋势统计结果。

使用switch结构

同样引用书中的例子,输入当天的日期,格式选择或长或短,默认为长格式。

mydate <- function(type="long") {
switch(type,
long = format(Sys.time(), "%A %B %d %Y"),
short = format(Sys.time(), "%m-%d-%y"),
cat(type, "is not a recognized type\n")
)
}

> mydate("long")
[1] "星期日 八月 13 2023"
> mydate("none")
none is not a recognized type

type有两个参数可选,longshort;如果是其他值,就会输出cat函数中的内容用来提示错误输入的参数值信息。

函数warning()可以生成一条错误提示信息,message() 可以生成一条诊断信息, 或用stop()停止当前表达式的执行并提示错误。

上一篇 下一篇

猜你喜欢

热点阅读