R语言函数入门50个基本函数

  • 0引言
  • 1、入门准备操作及函数
    • 1.1R版本介绍以及IDE的选择
    • 1.2IDE及其常用的快捷键
  • 2、空间操作以及纠错函数
    • 2.1 ? 、??、help、demo、example
    • 2.2 ls()
    • 2.3 getwd()、setwd()
    • 2.4 其他函数
    • 2.5大量数据空间管理
  • 3、常用数据结构的创建
    • 3.1向量的创建c、scan、rep、seq、:
    • 3.2矩阵的创建matrix、as.matrix,diag、data.matrix、cbind、rbind、t
    • 3.3 数据框的创建data.frame、as.data.frame
    • 3.4列表list、unlist
    • 3.5因子型factor、as.factor
    • 3.6数据的查看summary、str、dim、length、nrow、ncol、names、rownames、colnames、class
    • 3.7小结论
  • 4、运算符和赋值函数
    • 4.1逻辑匹配 %in% match
    • 4.2赋值 = <- <<-
    • 4.3逻辑运算 ==、 != 、>、 >= 、< 、<= 、is.na 、is.finite
    • 4.4 + - * / ^ %% %*% %/% solve givn of MASS
    • 4.5数学函数 abs sign acos
  • 5、循环+函数
    • 5.1循环 for while repeat next break cat
    • 5.2函数 function return missing on.exit
  • 6、总结

0引言

入门一门语言除了了解基本的函数流程框架以及编程逻辑,还需要掌握一定量的函数,本文总结了一些R语言常用的和函数,配套的有使用技巧和函数的使用实例,由于篇幅原因每个函数的解释详略可能控制不好,有需要的读者可以自行的去帮助文档以及互联网上搜集资料。

1、入门准备操作及函数

1.1R版本介绍以及IDE的选择

下面是我使用R的版本信息:

R version 3.6.2 (2019-12-12) -- "Dark and Stormy Night"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R的版本更新的是比较快的,但是主要的更新不大。我这是2019年3.6.2的版本了,大家使用最新的就行,一般的基础函数或者只要不是最新的包基本不会有太大的问题。

1.2IDE及其常用的快捷键

IDE我一般使用过RGuiRstudioR-Tinnjupyter notebook,当然除了这些IDE还有很多。我经常使用的是RGui,写markdown或者需要复杂的环境的时候会使用Rstudio
下面说一下编程时候的常用的快捷键,不会太全,只是我自己时常使用的而已。
– ctrl+L:清空控制台
– ctrl+R:运行代码
– ctrl+A:全选
– ctrl+S:保存
– ctrl+C、V:CV大法
注:单独运行某一行时不需要选中,只需要光标再需要运行的那一行就行。

2、空间操作以及纠错函数

入门R语言免不了读取外部数据,设置路径。这里介绍一下主要使用的函数。这是去年写的关于数据读取的一篇博文,又需要可以移步去看:R语言入门——数据快速读取与查看(含实例代码和参数讲解)。

2.1 ? 、??、help、demo、example

第一介绍的函数是三个帮助函数:?、 ??、 help,区别是:是常用的帮助函数,用来打开某个函数说明书。但是当你知道的信息很模糊的时候可以使用??来查看是否有类似或者相近的函数或者包,而help函数则可以指定一些更加多的参数。
下面是help的参数

> help
function (topic, package = NULL, lib.loc = NULL, verbose = getOption("verbose"), try.all.packages = getOption("help.try.all.packages"), help_type = getOption("help_type"))

当然在打开help之前,可以直接运行函数名,也可以得到很多函数使用的信息。

2.2 ls()

函数ls()可以用来查看目前空间变量,也可以使用ls函数查看某个包里的所有函数:用户方法是:ls("package:ggplot2")

> head(ls("package:ggplot2"),20)[1] "%+%"                 "%+replace%"          "aes"                [4] "aes_"                "aes_all"             "aes_auto"           [7] "aes_q"               "aes_string"          "after_scale"
[10] "after_stat"          "alpha"               "annotate"
[13] "annotation_custom"   "annotation_logticks" "annotation_map"
[16] "annotation_raster"   "arrow"               "as_label"
[19] "as_labeller"         "autolayer"

ggplot2包里目前有500多个函数,由于篇幅原因使用head函数只展示前20个函数。

2.3 getwd()、setwd()

这是两个可以查看和改变路径的函数。但是我一般不适用这两个函数管理路径,会使用空的.RData文件和相对路径去设置路径。

2.4 其他函数

– source:载入自编函数和包
– install.packages:安装大部分的cran包,别忘记选择一个离自己进的路径就行。一般只安装一次、以后使用只需要载入。
– library:载入已经安装的包,每次的重启代码都需要载入、
– require:判断包是否加载,否就是直接加载。并返回T,若不存在则返回F。
– rm:移除空间已经有的变量。
– # :代码注释

2.5大量数据空间管理

如果有需要大量的数据需要加载,可以参考下面的博客:2021美赛准备——内存管理(R语言)。

3、常用数据结构的创建

有了上述的只是想要进行运算需要会创建一些基本的数据。

3.1向量的创建c、scan、rep、seq、:

函数c、scan、rep、seq、:是常用的创建变量的函数。下面给出例子:

> x1 <- c(15, 6, 265, 6)
> x1
[1]  15   6 265   6
> x2 <- scan()
1: 5 5 54 8 456456
6:
Read 5 items
> x2  # 上一行的空行不能删掉
[1]      5      5     54      8 456456
> x3 <- rep(1:3, 2)
> x3
[1] 1 2 3 1 2 3
> x4 <- seq(0, 10, 2)
> x4
[1]  0  2  4  6  8 10

3.2矩阵的创建matrix、as.matrix,diag、data.matrix、cbind、rbind、t

> A <- matrix(NA, 5, 5)
> A[,1] [,2] [,3] [,4] [,5]
[1,]   NA   NA   NA   NA   NA
[2,]   NA   NA   NA   NA   NA
[3,]   NA   NA   NA   NA   NA
[4,]   NA   NA   NA   NA   NA
[5,]   NA   NA   NA   NA   NA
> B <- t(1:5)
> B[,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
> C <- cbind(1:5)
> C[,1]
[1,]    1
[2,]    2
[3,]    3
[4,]    4
[5,]    5
> D <- rbind(1:5)
> D[,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
> E <- as.matrix(data.frame(x = 1:5, y = 6:10))
> Ex  y
[1,] 1  6
[2,] 2  7
[3,] 3  8
[4,] 4  9
[5,] 5 10
> diag(rep(1, 5))  # 对角矩阵[,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    0    0
[2,]    0    1    0    0    0
[3,]    0    0    1    0    0
[4,]    0    0    0    1    0
[5,]    0    0    0    0    1
> data.matrix(data.frame(x = 1:5, y = 6:10))x  y
[1,] 1  6
[2,] 2  7
[3,] 3  8
[4,] 4  9
[5,] 5 10

3.3 数据框的创建data.frame、as.data.frame

数据框和矩阵不同的是,数据框每列元素是一个变量可是字符型也可以是数值型也可是逻辑型等。是以中建模时候经常使用的数据类型。我日常中经常使用的数据结构是data.table包里的data.table数据类型,他本身带有数据框的特性,但是兼容很多数据变形数据和并等数据科学的操作,是一个比较方便的数据类型。

> data.frame(x = 1:5,
+ y = paste0("z", 1:5),
+ z = (1:5) > 3
+ )x  y     z
1 1 z1 FALSE
2 2 z2 FALSE
3 3 z3 FALSE
4 4 z4  TRUE
5 5 z5  TRUE

3.4列表list、unlist

列表可用用来储存任何的数据类型,甚至是列表自己。下面展示给出实例:

> list(
+ x = data.frame(x = 1:5),
+ y = matrix(NA, 3, 3),
+ z = c(1:5),
+ d = factor(6:9),
+ r = list(x = 5, y = 6)
+ )
$xx
1 1
2 2
3 3
4 4
5 5$y[,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]   NA   NA   NA
[3,]   NA   NA   NA$z
[1] 1 2 3 4 5$d
[1] 6 7 8 9
Levels: 6 7 8 9$r
$r$x
[1] 5$r$y
[1] 6

3.5因子型factor、as.factor

在使用分类变量的时候会使用因子数据。创建方式也是比较简单的:

> factor(1:10)[1] 1  2  3  4  5  6  7  8  9  10
Levels: 1 2 3 4 5 6 7 8 9 10
> as.factor(rep(1:3, 5))[1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
Levels: 1 2 3
>

3.6数据的查看summary、str、dim、length、nrow、ncol、names、rownames、colnames、class

> (A <- matrix(NA, 5, 5))  # 赋值并输出[,1] [,2] [,3] [,4] [,5]
[1,]   NA   NA   NA   NA   NA
[2,]   NA   NA   NA   NA   NA
[3,]   NA   NA   NA   NA   NA
[4,]   NA   NA   NA   NA   NA
[5,]   NA   NA   NA   NA   NA
> (B <- data.frame(x = 1:5, y = 6:10))x  y
1 1  6
2 2  7
3 3  8
4 4  9
5 5 10
> class(A);class(B)
[1] "matrix"
[1] "data.frame"
> str(A); str(B)logi [1:5, 1:5] NA NA NA NA NA NA ...
'data.frame':   5 obs. of  2 variables:$ x: int  1 2 3 4 5$ y: int  6 7 8 9 10
> names(A); rownames(A); colnames(A)
NULL
NULL
NULL
> names(B); rownames(B); colnames(B)
[1] "x" "y"
[1] "1" "2" "3" "4" "5"
[1] "x" "y"
> dim(A);dim(B)
[1] 5 5
[1] 5 2
> length(A)
[1] 25
> summary(A)V1             V2             V3             V4             V5         Mode:logical   Mode:logical   Mode:logical   Mode:logical   Mode:logical  NA's:5         NA's:5         NA's:5         NA's:5         NA's:5
> summary(B)x           y     Min.   :1   Min.   : 6  1st Qu.:2   1st Qu.: 7  Median :3   Median : 8  Mean   :3   Mean   : 8  3rd Qu.:4   3rd Qu.: 9  Max.   :5   Max.   :10

3.7小结论

以上每一个函数都是比较常用的函数,功能都很多,这里只是起到了抛砖引玉的作用,其他更有用的技能还是等着读者自己探索。

4、运算符和赋值函数

有了基本的数据类型,下面就可以对内部数据进行运算了。

4.1逻辑匹配 %in% match

这是一个逻辑运算符,可以判断两个对象值之前的单个元素是否属于另一个,返回逻辑值。

> 1:3 %in% 3:10
[1] FALSE FALSE  TRUE
> match(c(1, "TRUE"), c(T, 0, "1"))
[1] 3 1
> match(1:3, 3:10)
[1] NA NA  1

4.2赋值 = <- <<-

这三个都是赋值运算符号。=是传参,<-是赋值,<<-是全局赋值。原则是:
变量的创建赋值使用<-,函数的传参使用=,<<-非必要不推荐使用.

4.3逻辑运算 ==、 != 、>、 >= 、< 、<= 、is.na 、is.finite

逻辑运算符和其他语言的很相似这里就不在一一说明了。

4.4 + - * / ^ %% %*% %/% solve givn of MASS

R里的+-*/是对应元素的运算,而%*%,solve是矩阵运算。

4.5数学函数 abs sign acos

数学函数还是比较多的这里就不再标题里列出来了。具体函数还有:

sin cos tan asin acos atan atan2
max min prob sum mean lenght sd var cor cov median
pmax pmin range rel
exp log log2 log10 sqrt
ceiling floor round trunc signif
diff cummax cummin  cumprob cumsum
all any which
intersect union setdiff setequal

大部分和数学符号很一直,这里具体介绍几个不常用的:

> round(x2, 3)  # 保留三位效数
[1]       0.031       3.142     314.159   31415.927 3141592.654
> signif(x2, 4)  # 4为有效数字的科学记数法
[1] 3.142e-02 3.142e+00 3.142e+02 3.142e+04 3.142e+06
> x <- sort(rnorm(100));  cH <- 0.5
> pmin(cH, quantile(x)) # no names
[1] -2.4357860 -0.6936559  0.1121157  0.5000000  0.5000000
> pmin(quantile(x), cH) # has names0%        25%        50%        75%       100%
-2.4357860 -0.6936559  0.1121157  0.5000000  0.5000000

5、循环+函数

5.1循环 for while repeat next break cat

循环函数在编程中还是比较常用的。
下面以for为例子给出实例:

> for(i in 1:10){+   cat("正在处理第", i,"次 ... ...", "\n")
+ }
正在处理第 1 次 ... ...
正在处理第 2 次 ... ...
正在处理第 3 次 ... ...
正在处理第 4 次 ... ...
正在处理第 5 次 ... ...
正在处理第 6 次 ... ...
正在处理第 7 次 ... ...
正在处理第 8 次 ... ...
正在处理第 9 次 ... ...
正在处理第 10 次 ... ...

5.2函数 function return missing on.exit

同样的给出函数和调用函数的例子:

> myfun <- function(n){+   for(i in 1:n){+     cat("正在处理第", i,"次 ... ...", "\n")
+   }
+   return()
+ }
> myfun(5)
正在处理第 1 次 ... ...
正在处理第 2 次 ... ...
正在处理第 3 次 ... ...
正在处理第 4 次 ... ...
正在处理第 5 次 ... ...
NULL

6、总结

最后希望可以帮助大家学习R语言。水平有限发现错误还望及时评论区指正,您的意见和批评是我不断前进的动力。当然如果有更好的改进方案欢迎评论区交流。

R语言入门——常用函数50个相关推荐

  1. R语言:常用函数总结

    1. range()函数:返回一个向量,该向量包含给定参数的最大值和最小值. range(..., na.rm = FALSE, finite = FALSE) 参数 ... 任意数值型或字符型对象 ...

  2. R语言的常用函数速查

    转载自:http://www.52analysis.com/R/1626.html 基本 一.数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量character:字 ...

  3. R语言使用plot函数和lines函数可视化线图(line plot)时、图之间的主要区别是由选项type产生的、type参数常用参数说明、不同type生成的可视化图像对比

    R语言使用plot函数和lines函数可视化线图(line plot)时.图之间的主要区别是由选项type产生的.type参数常用参数说明.不同type生成的可视化图像对比 目录

  4. R语言入门——你不知到的哪些黑科技(这里面的函数你用过一个算我输)

    文档再短再要有目录不是 00引言 1.() 2."运算符号"(,) 3.总结 00引言 在R语言入门中你会遇到各种处理数据建立模型的函数,今天介绍一下在平时的编程中一直被大家忽略的 ...

  5. 【万字长文】R语言入门学习路线与资源汇总

    本篇推文就不介绍为什么需要学R了,你能打开这篇文章,说明你有学习R的想法或者正在学习R的路上. 今天简单介绍下R语言的学习路线以及R学习资源汇总. 下面涉及到的R语言书籍我打包了PDF文件,有需要的在 ...

  6. r语言x c(-1 -2),【软件】R语言入门之向量

    "R语言入门开篇,向量(vector)相关知识的介绍" R语言是一款优秀统计学编程语言,本文介绍R语言的几个重要命令,以及R语言中非常重要的一种数据结构-向量(Vector)的相关 ...

  7. 技巧 | 如何使用R语言的常用工具包绘制双变量填充地图

    之前本号转载了DataCharm公众号的一篇推送: 转载 | 双变量映射地图可视化绘制方法 这篇推送使用了biscale工具包绘制了双变量填充地图.近来,小编发现使用常用的绘图工具包也能很便捷的绘制这 ...

  8. 《R语言入门与实践》学习笔记四

    第四天任务: 完成项目玩扑克牌后1/2,并通过项目学会以下技能: 1)从一个数据集中抽取个别数据值. 2)在一个数据集中改变个别数据的取值. 3)编写逻辑测试程序. 4)使用R的缺失值符号NA. -- ...

  9. R语言使用符号函数计算数据的正负特性、sign函数计算数据的正负符号返回0、1、-1

    R语言使用符号函数计算数据的正负特性.sign函数计算数据的正负符号返回0.1.-1 目录 R语言使用符号函数计算数据的正负特性.sign函数计算数据的正负符号返回0.1.-1 R 语言特点 R语言使 ...

最新文章

  1. java开发培训中消息中间件的优势有哪些
  2. 100W无线充电方案文献调研 - 信息HUB
  3. linux下echo /dev/ttys* 到字符设备文件,linux之tty pty pts
  4. python代码块-Python中的代码块和非代码块是什么
  5. InfluxData【环境搭建 03】时序数据库 InfluxDB 离线安装配置使用(下载+安装+端口绑定+管理员用户创建+开启密码认证+开机自启配置)完整流程实例分享
  6. c# 情感倾向_C否则-能力倾向问题与解答
  7. mobi格式电子书_进阶能力 | 了解常见的电子书格式
  8. ubuntu boot中grub误操作 导致系统开进grub
  9. python循环输入若干学生信息网_python最简学生信息系统,练习while
  10. 2019重庆对口高职计算机类分数排名,重庆2019高职分类考试分数线公布
  11. cad快速看图能合并图纸吗_【CAD快速看图电脑版】合并图纸、2张图之间复制
  12. Arm 中国原 CEO 被“罢免”,新指定“官方”:已获员工大力支持
  13. POI合并单元格后边框显示问题
  14. windows 编译n2n
  15. 成功解决IPython.core.display.HTML object
  16. 盘点PS使用小技巧。
  17. cs字体样式和盒子模型学习1
  18. android手机装win10吗,你真没有看错!Android手机一秒变Win10
  19. 数据可视化 六种基本图标
  20. FLStudio中文全套插件包FL水果20.8中文宿主软件插件

热门文章

  1. 【ERROR】java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit
  2. nRF53832开发环境搭建
  3. Macbook怎么录屏?macbook怎么屏幕录制
  4. kettle报错 Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘ driver
  5. 微信公众平台编辑器可收藏、使用模版了
  6. win10 子系统之 Ubuntu,解放你的生产力
  7. 基于AD603的AGC电路
  8. 电子计算机里CE,电子计算机上的ce表示什么意思
  9. 查询主表每条数对应的最新一条日志 group
  10. 等保2.0基本要求与等保1.0对比解读