R语言其他相关函数(各函数解析含实例,可供查询)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: R语言其他相关函数(各函数解析含实例,可供查询)

一.函数相关

1.函数定义:function

my_sum <- function(x, y) {
  result <- x + y
  return(result)
}

2.调用文件:source

source("file_path.R")
#file_path.R是文件执行的路径

3. Call

my_function <- "mean"
my_arguments <- c(1, 2, 3, 4, 5)
my_call <- call(my_function, my_arguments)
result <- eval(my_call)
#输出 [1] 3

4.Recall

在递归函数中进行递归调用。


factorial <- function(n) {

if (n <= 1) {
    return(1)
  } else {
    return(n * Recall(n - 1))
  }
}
result <- factorial(5)
print(result)  # 输出结果:120

5.browser

插入调试点,逐行执行代码


my_function <- function(x, y) {
  z <- x + y
  browser()  # 在这里插入调试点
  result <- z * 2
  return(result)
}
result <- my_function(3, 4)
print(result)

6.debug和undebug

debug:启用调试模式
undebug:禁用调试模式
my_function <- function(x, y) {
  z <- x + y
  result <- z * 2
  return(result)
}
debug(my_function)  # 启用调试模式
result <- my_function(3, 4)
print(result)
undebug(my_function)  # 禁用调试模式

7.trace

添加跟踪代码,以便追踪函数的执行过程。添加跟踪代码后,每次调用函数时都会输出相关信息。


my_function <- function(x, y) {
  z <- x + y
  result <- z * 2
  return(result)
}
trace(my_function, quote(print(x)), at = 2)  # 添加跟踪代码
result <- my_function(3, 4)
print(result)
untrace(my_function)  # 移除跟踪代码

8.traceback

当程序发生错误时,可以使用 traceback() 来查看导致错误的函数调用链,帮助定位错误来源。


my_function <- function(x, y) {
  z <- x + y
  result <- z * 2
  stop("An error occurred")
  return(result)
}
result <- my_function(3, 4)
print(result)
traceback()  # 显示函数调用堆栈

9.options

常用参数


digits:设置浮点数的显示精度。默认值为 7,表示小数点后显示 7 位有效数字。例如,options(digits = 3) 将显示小数点后的 3 位有效数字。
scipen:控制科学计数法的显示方式。默认值为 0,表示使用标准的十进制显示。通过调整 scipen 的值,可以选择是否使用科学计数法以及在何时启用科学计数法。
warn:控制警告信息的处理方式。默认值为 0,表示将警告信息显示为简短的警告消息。将 warn 设置为正整数可以控制警告信息的显示程度。
max.print:控制打印输出的最大行数。默认值为 9999,表示最大打印行数。如果需要限制打印输出的行数,可以通过设置 max.print 参数来实现。
error:控制错误信息的处理方式。默认值为 dump.frames,表示在发生错误时保存调用堆栈并进入调试模式。通过修改 error 参数,可以选择如何处理错误信息,如简单地中断程序执行或保存调用堆栈等。
stringsAsFactors:控制是否将字符型变量默认转换为因子型。默认值为 TRUE,表示字符型变量在需要时被自动转换为因子型。如果想要禁止自动转换,请设置 stringsAsFactors = FALSE。
options(digits = 3)  # 设置数字的显示精度为 3
x <- sqrt(2)
print(x)  # 输出结果:1.41

10.missing

用于判断函数中的虚参(没有默认值的参数)是否有对应的实参传递


my_function <- function(x, y) {
  if (missing(y)) {
    print("y is missing")
  } else {
    print("y is provided")
  }
}
my_function(10)  # 输出结果:y is missing
my_function(10, 20)  # 输出结果:y is provided

11.nargs

nargs 是一个变量,用于获取函数调用时传递的参数个数。


my_function <- function(...) {
  num_args <- nargs()
  print(paste("Number of arguments:", num_args))
}
my_function(1, 2, 3)  # 输出结果:Number of arguments: 3
my_function("a", "b")  # 输出结果:Number of arguments: 2

12.stop

在函数执行过程中终止函数的执行,并抛出一个错误信息。


my_function <- function(x) {
  if (x <= 0) {
    stop("Input must be a positive number")
  }
  # 执行其他操作
}
my_function(-5)  # 抛出错误:Input must be a positive number

13.指定退出时执行的表达式

cleanup <- function() {
  cat("Performing cleanup operations...\n")
  # 执行清理操作的代码
}
on.exit(cleanup())

14.expression和eval

expression() 函数用于构建一个表达式对象,该对象可以在后续代码中使用 eval() 来进行求值。


expr <- expression(2 + 3 * 4)
result <- eval(expr)
print(result)  # 输出结果:14

15.system.time

用于测量执行给定表达式所需的时间。


result <- system.time({
  # 执行需要计时的代码
  for (i in 1:1000000) {
    sqrt(i)
  }
})
print(result)  # 输出计时信息


16. invisible

在函数内部生成结果,但不立即显示结果


my_function <- function() {
  result <- 10
  invisible(result)  # 隐藏输出结果
}
output <- my_function()
print(output)  # 不会显示输出结果

17.menu

在控制台上显示一个字符列表菜单,并允许用户选择其中的选项


options <- c("Option 1", "Option 2", "Option 3", "Exit")
selection <- menu(options, title = "Select an option:")
if (selection == length(options)) {
#如果选项是4(length),最后一个选项 "Exit" 的索引,则退出
  cat("Exiting the program...\n")
} else {
  cat("You selected:", options[selection], "\n")
}

18.deparse

将 R 对象转换为字符向量


x <- 10
y <- c(1, 2, 3)
dep_x <- deparse(x)
dep_y <- deparse(y)
print(dep_x)  # 输出结果:[1] "10"
print(dep_y)  # 输出结果:[1] "1" "2" "3"

19.do.call

它接受一个函数对象和参数列表,并在给定上下文中执行该函数。


add_numbers <- function(a, b) {
  return(a + b)
}
args <- list(a = 5, b = 3)
result <- do.call(add_numbers, args)
print(result)  # 输出结果:8

20.dput

将 R 对象的表示形式以 R 代码的方式输出到控制台或文件中。


x <- c("apple", "banana", "cherry")
dput(x)
# 输出结果:
# c("apple", "banana", "cherry")

21.environment

使用 environment() 获取当前环境


current_env <- environment()
print(current_env)

22.new.env

创建一个新的空环境


custom_env <- new.env()
assign("x", 10, envir = custom_env)#使用 assign() 将值 10 分配给变量 x
print(custom_env$x)

23.parent.env

获取当前环境的父环境


parent <- parent.env(environment())

print(parent)


24.formals

获取或设置函数的形式参数和其默认值


(1) 获取或设置函数的形式参数和其默认值


# 定义一个简单的函数
my_function <- function(a, b = 10, c = "hello") {
  # 函数体
}
# 使用 formals() 获取函数的形式参数和默认值
parameters <- formals(my_function)
print(parameters)


(2)设置函数的形式参数和默认值:


# 使用 formals() 设置函数的形式参数和默认值
formals(my_function) <- list(a = 20, b = 30, c = "world")
# 打印修改后的形式参数和默认值
print(formals(my_function))



25.interactive

interactive 是一个逻辑值(TRUE 或 FALSE),用于判断当前 R 环境是否为交互式环境


当 R 运行在交互式模式下时,interactive 的值为 TRUE;


当 R 运行在非交互式(批处理)模式下时,interactive 的值为 FALSE。


if (interactive()) {
  print("Running in interactive mode")
} else {
  print("Running in non-interactive mode")
}



26.is.finite

用于检查一个值是否为有限数值(finite numeric)


x <- 10
y <- Inf
print(is.finite(x))  # 输出结果:TRUE
print(is.finite(y))  # 输出结果:FALSE
# y 是无穷大值(Infinity)

27.is.function

用于判断一个对象是否为函数(function)。它返回一个逻辑值(TRUE 或 FALSE)


my_function <- function(x) {
  return(x * 2)
}
print(is.function(my_function))  # 输出结果:TRUE
print(is.function(x))            # 输出结果:FALSE

28.is.language

用于判断一个对象是否为语言对象(language object)。语言对象是 R 中表示表达式和控制结构的一种特殊数据类型。它返回一个逻辑值(TRUE 或 FALSE)。


expr <- quote(print("Hello, world!"))
print(is.language(expr))  # 输出结果:TRUE
print(is.language(x))     # 输出结果:FALSE
# x 是一个变量,不是语言对象


29.is.recursive

用于检查一个对象是否包含递归元素。如果对象是递归的,则返回 TRUE;否则返回 FALSE。


x <- list(1, 2, list(3, 4))
print(is.recursive(x))  # 输出结果:TRUE
print(is.recursive(5))  # 输出结果:FALSE

30.match.arg

将输入参数与指定的可选值进行匹配。它返回与输入参数最匹配的选项值,或者如果没有匹配的选项,则返回一个默认值。


my_function <- function(option) {
  arg <- match.arg(option, choices = c("option1", "option2", "option3"), several.ok = FALSE)
  print(arg)
}
my_function("option2")  # 输出结果:option2
my_function("option4")  # 输出结果:Error in match.arg(option, choices = c("option1", "option2", "option3"), several.ok = FALSE) :
                        # 'arg' must be one of "option1", "option2", "option3"

31.match.call

用于获取当前函数的调用。它返回一个表示函数调用的语法树(call)对象。


my_function <- function(x, y) {
  call <- match.call()
  print(call)
}
my_function(10, 20)
#输出 my_function(x = 10, y = 20)

32.match.fun

用于匹配字符串或符号与函数对象。它返回与输入匹配的函数对象。


add_numbers <- function(a, b) {

 return(a + b)

}

func <- match.fun("add_numbers")

result <- func(10, 20)

print(result)

#输出 [1] 30

33.name

获取对象的名称,并返回一个表示对象名称的字符字符串。


x <- 10

obj_name <- name(x)

print(obj_name)  # 输出结果:"x"

34.parse

将字符字符串解析为 R 表达式(expression)对象


它返回一个表示解析后的表达式的对象。


expr_str <- "2 * (x + y)"

expr <- parse(text = expr_str)

print(expr)  # 输出结果:expression(2 * (x + y))

35.quote

用于创建一种特殊的对象,称为表达式(expression),来表示一段代码或一个表达式本身。它返回一个表示给定代码或表达式的对象。


(1)引用表达式


x <- 10

y <- 5

expr <- quote(x + y)

print(expr)  # 输出结果:x + y

(2)使用eval()进行求值


x <- 10

y <- 5

expr <- quote(x + y)

result <- eval(expr)

print(result)  # 输出结果:15


36.deparse

用于将表达式(expression)对象转换为字符字符串。它返回一个表示表达式的字符向量。


expr <- quote(2 * (x + y))

expr_str <- deparse(expr)

print(expr_str)  # 输出结果:"2 * (x + y)"


37.substitute

用于将符号(symbol)替换为表达式中的相应值或参数。它返回一个表示替换后的表达式的对象。


x <- 10

y <- 5

expr <- substitute(x + y, list(x = 20))

print(expr)  # 输出结果:20 + y


38.warning

用于生成警告信息


x <- 10

if (x > 5) {

 warning("x 大于 5,可能导致意外结果")

}

二.输入输出相关

1.cat,print

在控制台显示对象或输出结果。


(1)cat


#连接(concatenate)并打印一个或多个对象到控制台,以文本形式显示

x <- 10

y <- 20

cat("x 的值为", x, ",y 的值为", y)

#控制台会显示

x 的值为 10 ,y 的值为 20

(2)print


#使用 print() 函数打印变量 x 和 y 的值。结果会在控制台显示

x <- 10

y <- 20

print(x)

print(y)

#控制台显示

[1] 10

[1] 20

2.sink

sink() 函数用于改变输出的目的地。它可以将输出重定向到文件或其他设备,从而控制输出的保存或显示方式。


(1)将输出重定向到文件


使用 sink() 将输出重定向到名为 "output.txt" 的文件。然后,通过使用 cat() 打印文本 "Hello, world!",它实际上会被写入到文件中。最后,通过调用 sink(),将输出恢复到标准输出(控制台)。


sink("output.txt")

cat("Hello, world!")

sink()

(2)将输出重定向到字符串变量


#capture.output() 函数用于捕获代码块中的输出,并将其保存为字符向量

output <- capture.output({

 cat("Hello, world!")

})

print(output)

3.dump,save,dput,write

用于将对象输出到文件或控制台的函数


(1)dump


x <- 10

y <- "Hello, world!"

#文件 "data.R" 将包含相应的 R 代码来定义这些对象

dump(c("x", "y"), file = "data.R")

(2)save


x <- 10

y <- "Hello, world!"

#将一个或多个对象保存到二进制文件中

save(x, y, file = "data.RData")

(3)dput


x <- list(a = 1, b = 2)

#用于生成一个对象的可重现表达式,并将其输出到控制台或文件。

dput(x)

(4)write


x <- c(1, 2, 3, 4, 5)

#用于将对象以文本形式写入文件

write(x, file = "data.txt")

4.scan,read.table,readlines, load,dget

用于读取数据或加载对象的函数


(1)scan


#用于逐行扫描输入文件或控制台,并将数据读入为向量或矩阵。

data <- scan("data.txt")

(2)read.table


#用于从文件中读取表格形式的数据,并创建一个数据框(data frame)

df <- read.table("data.txt", header = TRUE)

(3)redlines


#用于从文件中读取表格形式的数据,并创建一个数据框(data frame)

lines <- readlines("data.txt")

(4)load


#用于加载以二进制格式保存的 R 工作空间(Workspace)或对象。

load("data.RData")

(5)dget


#用于将以字符串形式表示的 R 表达式读取为相应的对象

expr <- dget("expression.txt")

三.工作环境相关

1.ls,objects

来显示当前环境中定义的对象列表


x <- 10

y <- "Hello, world!"

# 使用 ls() 函数显示对象列表

print(ls())

# 或者使用 objects() 函数显示对象列表

print(objects())


2.rm(remove)

可以删除一个或多个对象


x <- 10

y <- 20

rm(x)  # 或 remove("x")

#x 对象将从内存中移除,不再可访问

#rm(x, y)(或 remove("x", "y"))将一次性删除 x 和 y 两个对象

#如果要删除当前环境中的所有对象

可以使用 rm(list = ls())(或 remove(list = ls()))来清空环境。

3.q(quit)

两个函数都用于终止 R 会话并退出。


# 使用 q() 函数退出系统

q()

# 或者使用 quit() 函数退出系统

quit()


4.First,Last

(1)First


# .Rprofile 文件

#.First 函数是一个可选的全局环境中的函数,在 R 启动时被自动调用

.First <- function() {

 cat("Welcome to R!")

}

(2)Last


# .Rprofile 文件

#也是一个可选的全局环境中的函数,在 R 即将退出时被自动调用

.Last <- function() {

 cat("Goodbye! Thanks for using R.")

}

5.options

(1)获取当前的系统选项


current_options <- options()

print(current_options)

(2)设置系统选项


# 设置浮点数的显示精度

options(digits = 3)

# 设置警告消息的处理方式

options(warn = 2)

6.?,help,help.start,apropos

(1)?


? 或 help() 函数用于获取特定函数或主题的帮助文档


# 获取特定函数的帮助文档

?mean

help(mean)

# 获取特定主题的帮助文档

?graphics

help("plotting")

(2)help.start


用于启动一个基于 HTML 的本地帮助文档


help.start()

(3)apropos


用于搜索对象名和函数名称,返回与给定字符串相关的所有对象和函数


apropos("plot")

7.data

使用 data() 函数来列出附带R安装的数据集


#使用 data() 函数来列出附带R安装的数据集

# 列出所有附带的数据集

data()

# 查看特定数据集的帮助文档

?iris

8.head

使用 head() 函数来查看数据的前几行


# 查看 iris 数据集的前 6 行

head(iris)

# 查看 mtcars 数据集的前 10 行

head(mtcars, 10)

9.tail

使用 tail() 函数来查看数据的最后几行


# 查看 iris 数据集的最后 6 行

tail(iris)

# 查看 mtcars 数据集的最后 10 行

tail(mtcars, 10)


目录
相关文章
|
2月前
|
存储 Cloud Native 关系型数据库
Ganos实时热力聚合查询能力解析与最佳实践
Ganos是由阿里云数据库产品事业部与飞天实验室共同研发的新一代云原生位置智能引擎,集成于PolarDB-PG、Lindorm、AnalyticDB-PG和RDS-PG等核心产品中。Ganos拥有十大核心引擎,涵盖几何、栅格、轨迹等多种数据处理能力,实现了多模多态数据的一体化存储、查询与分析。本文重点介绍了Ganos的热力瓦片(HMT)技术,通过实时热力聚合查询与动态输出热力瓦片,无需预处理即可实现大规模数据秒级聚合与渲染,适用于交通、城市管理、共享出行等多个领域。HMT相比传统网格聚合技术具有高效、易用的优势,并已在多个真实场景中验证其卓越性能。
47 0
|
5天前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
83 57
|
8天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
27 3
|
10天前
|
XML 数据格式
HTML 实例解析
本文介绍了HTML中常见元素的使用方法,包括`&lt;p&gt;`、`&lt;body&gt;`和`&lt;html&gt;`等。详细解析了这些元素的结构和作用,并强调了正确使用结束标签的重要性。此外,还提到了空元素的使用及大小写标签的规范。
|
2月前
|
存储 前端开发 JavaScript
前端基础(十二)_函数高级、全局变量和局部变量、 预解析(变量提升)、函数返回值
本文介绍了JavaScript中作用域的概念,包括全局变量和局部变量的区别,预解析机制(变量提升),以及函数返回值的使用和类型。通过具体示例讲解了变量的作用域、函数的返回值、以及如何通过return关键字从函数中返回数据。
22 1
前端基础(十二)_函数高级、全局变量和局部变量、 预解析(变量提升)、函数返回值
|
26天前
|
域名解析 网络协议 安全
DNS查询工具简介
DNS查询工具简介
94 4
|
25天前
|
存储
atoi函数解析以及自定义类型经典练习题
atoi函数解析以及自定义类型经典练习题
25 0
|
29天前
|
数据处理 Python
深入探索:Python中的并发编程新纪元——协程与异步函数解析
深入探索:Python中的并发编程新纪元——协程与异步函数解析
23 3
|
29天前
|
机器学习/深度学习 算法 C语言
【Python】Math--数学函数(详细附解析~)
【Python】Math--数学函数(详细附解析~)
|
2月前
|
数据可视化 Python
Python绘制基频曲线——实例解析与应用探讨
Python绘制基频曲线——实例解析与应用探讨
51 9

推荐镜像

更多