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

news2024/11/28 17:53:57

目录

一.函数相关

1.函数定义:function

2.调用文件:source

3. Call

4.Recall

5.browser

6.debug和undebug

7.trace

8.traceback

9.options

10.missing

11.nargs

12.stop

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

14.expression和eval

15.system.time

16. invisible

17.menu

18.deparse

19.do.call

20.dput

21.environment

22.new.env

23.parent.env

24.formals

25.interactive

26.is.finite

27.is.function

28.is.language

29.is.recursive

30.match.arg

31.match.call

32.match.fun

33.name

34.parse

35.quote

36.deparse

37.substitute

38.warning

二.输入输出相关

1.cat,print

2.sink

3.dump,save,dput,write

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

三.工作环境相关

1.ls,objects

2.rm(remove)

3.q(quit)

4.First,Last

5.options

6.?,help,help.start,apropos

7.data

8.head

9.tail


一.函数相关

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

常用参数

  1. digits:设置浮点数的显示精度。默认值为 7,表示小数点后显示 7 位有效数字。例如,options(digits = 3) 将显示小数点后的 3 位有效数字。

  2. scipen:控制科学计数法的显示方式。默认值为 0,表示使用标准的十进制显示。通过调整 scipen 的值,可以选择是否使用科学计数法以及在何时启用科学计数法。

  3. warn:控制警告信息的处理方式。默认值为 0,表示将警告信息显示为简短的警告消息。将 warn 设置为正整数可以控制警告信息的显示程度。

  4. max.print:控制打印输出的最大行数。默认值为 9999,表示最大打印行数。如果需要限制打印输出的行数,可以通过设置 max.print 参数来实现。

  5. error:控制错误信息的处理方式。默认值为 dump.frames,表示在发生错误时保存调用堆栈并进入调试模式。通过修改 error 参数,可以选择如何处理错误信息,如简单地中断程序执行或保存调用堆栈等。

  6. 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 是一个逻辑值(TRUEFALSE),用于判断当前 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)

整理不易,若有遗漏会继续补充,若有错误,请大佬们不吝赐教!!💖💖💖 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/952052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot+mybatis-plus+dynamic-datasource 切换数据源失败问题总结

Springbootmybatis-plusdynamic-datasourceDruid 多数据源 切换数据源失败总结 文章目录 Springbootmybatis-plusdynamic-datasourceDruid 多数据源 切换数据源失败总结0.前言1. dynamic-datasource 切换数据源失败场景总结1. spring-batch整合情况下切换数据源异常解决办法&am…

Matlab图像处理-图像缩放

基本概念 图像缩放是指将给定的图像在x轴方向按比例缩放a倍&#xff0c;在y轴方向按比例缩放b倍&#xff0c;从而获得一幅新的图像。 如果ab&#xff0c;即在x轴方向和y轴方向缩放的比率相同&#xff0c;则称这样的比例缩放为图像的全比例缩放。 如果a≠b&#xff0c;图像比…

Spring: HiddenHttpMethodFilter的用法及原理

作用&#xff1a;将html表单提交的post请求转换为put请求或delete请求发给接口。 html不支持put和delete. 一、web.xml中配置过滤器 <filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenH…

认识SQL sever

目录 一、数据库的概念 1.1数据库的基本概念 1.2对数据库的了解 二、数据库的分类 2.1关系型数据库&#xff08;RDBMS&#xff09;&#xff1a; 2.2非关系型数据库&#xff08;NoSQL&#xff09;&#xff1a; 2.3混合数据库&#xff1a; 2.4数据仓库&#xff1a; 2.5嵌…

二叉树中的堆

堆的概念和结构 大堆&#xff1a; 树中的任何一个父亲都大于等于孩子 小堆&#xff1a; 树中的任何一个父亲都小于等于孩子 堆在逻辑上是二叉树来存储的&#xff0c;就是在我们的想象中他是按二叉树来存储的&#xff0c;但是在实际上&#xff0c;它是以数组的形式来存储的&…

软考A计划-网络工程师-复习背熟-路由器与交换配置和网络安全

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

移动端如何适配不同的屏幕尺寸

在移动端开发中&#xff0c;适配不同的屏幕尺寸是一个重要的考虑因素。以下是一些常用的方法来实现移动端的屏幕适配&#xff1a; 使用响应式布局&#xff1a;使用CSS媒体查询和弹性布局来根据屏幕尺寸调整页面布局和元素大小。通过设置百分比、em或rem单位来实现元素的相对大小…

ICCV 2023 | 港中文MMLab: 多帧光流估计模型VideoFlow,首次实现亚像素级别误差

本文提出了一个多帧光流估计模型 VideoFlow&#xff0c;旨在充分挖掘视频中的时序信息和运动规律&#xff0c;避免当前主流方法只以两帧图片作为输入而面临的信息瓶颈&#xff0c;显著提升了光流估计的性能。 在公开的 Sintel Bechmark 上&#xff0c;VideoFlow 在 Clean 和 Fi…

过期订单关闭

由于Redis具有过期监听的功能&#xff0c;于是就有人拿它来实现过期订单关闭&#xff0c;但是这个方案并不完美。今天来聊聊11种实现订单定时关闭的方案&#xff0c;总有一种适合你&#xff01; 在电商、支付等系统中&#xff0c;一般都是先创建订单&#xff08;支付单&#x…

七牛云OSS存储

前言: 七牛云的存储项目的附件,需要开发一套七牛云的工具类,可以使用该工具类进行七牛云服务器进行文件的上传与下载操作; 七牛云的文档学习: 相关的依赖项的配置: <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-s3…

如何改善客户服务?

提供优质的客户服务是经营成功企业的一个重要方面。满意的客户更有可能成为回头客&#xff0c;并向他人推荐你的产品或服务。在当今竞争激烈的市场中&#xff0c;良好的客户服务可能是一家繁荣的企业与一家艰难生存的企业的区别。今天&#xff0c;我们就改善客户服务6个行之有效…

面试官眼中的理想候选人:如何成为他们的首选

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

测试理论与方法----测试流程第五个步骤:测试总结报告

10、通用测试技术 1、测试总结报告概述 定义&#xff1a;把测试过程和结果整理成文档&#xff0c;对发现的问题和缺陷进行分析&#xff0c;为纠正软件的质量提供依据&#xff0c;同时为后续的验收和交付打下基础。测试报告是测试阶段最后的产出&#xff0c;一份详细的测试报告…

【已解决】为什么RAR压缩包里的文件无法删除?

小伙伴们是否遇到过这样的问题&#xff1f;打开RAR压缩包&#xff0c;想要删除里面的文件却发现无法删除&#xff0c;提示“不支持当前操作”。 其实&#xff0c;这是文件在压缩的时候设置了“锁定压缩文件”&#xff0c;设置后&#xff0c;除了无法删除压缩包里的文件&#xf…

控制ATOS/HYDAC/VICKERS比例插装阀线圈放大器

驱动各种国产或进口品牌开环控制比例插装式阀的线圈&#xff0c;如SUN/ATOS/HYDAC/VICKERS/REXROTH/HYDRAFORCE等品牌比例插装式方向阀、流量阀、压力阀、叠加阀等。 比例放大器参数&#xff1a; 电源24VDC标准&#xff1b; 输入指令0-10V、4-20 mA、0-5V可选&#xff1b; …

线上排查定位OOM问题的记录

整体思路&#xff1a;把机器上的快照文件下载到本地电脑&#xff0c;用eclipse analyzer打开它&#xff0c;找到是哪一行导致oom。 注&#xff1a;日志里看不到报错信息是因为 还没有来得及记录到日志文件&#xff0c;就down了。 把该文件下载到本地电脑&#xff0c;可以借助x…

八、代理模式

一、什么是代理模式 代理模式的定义&#xff1a;由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时&#xff0c;访问对象不适合或者不能直接引用目标对象&#xff0c;代理对象作为访问对象和目标对象之间的中介。 代理模式的主要角色如下: 抽象主题&#xff08…

OutOfMemoryError内存溢出和StackOverFlowError栈溢出及解决方法

前一篇&#xff1a;JVM 内存结构 StackFlowError&#xff08;栈溢出&#xff09; 线程的堆栈存储 线程局部原始数据类型、变量、对象的引用、返回值。如果线程堆栈大小超出分配的内存限制&#xff0c;就会出现栈溢出错误。 这里用递归调演示错误 解决方法&#xff1a; 1、修…

初始Linux进程间通信(单机)

目录 1、前言 2、进程间通信的分类 管道 System V IPC POSIX IPC 3、管道 3.1 匿名管道 pipe 实例代码 管道读写规则&#xff1a; 管道特点 3.2 命名管道 创建一个命名管道 两个进程间使用命名管道进行通信示例代码 4、system V共享内存 4.1 共享内存数据结构 …

【档案专题】八、电子档案鉴定与销毁

导读&#xff1a;主要针对电子档案鉴定与销毁相关内容介绍。对从事电子档案管理信息化的职业而言&#xff0c;不断夯实电子档案管理相关理论基础是十分重要。只有通过不断梳理相关知识体系和在实际工作当中应用实践&#xff0c;才能走出一条专业化加职业化的道路&#xff0c;从…