当前位置: 首页 > news >正文

R语言学习笔记

1.R语言介绍

在这里插入图片描述
在这里插入图片描述

2.R语言安装

官网:https://www.r-project.org/

CARN → 选择China中任意镜像站点 → Download R for Windows → base(二进制版本R基础软件)→
Download R-4.2.2 for Windows (76 megabytes, 64 bit)

3.Rstudio安装

https://posit.co/download/rstudio-desktop/

DOWNLOAD RSTUDIO → DOWNLOAD RSTUDIO DESKTOP FOR WINDOWS → RStudio
Desktop → DOWNLOAD RSTUDIO → DOWNLOAD RSTUDIO DESKTOP FOR WINDOWS

4.Rtoos安装(R包安装需要)

https://cran.r-project.org/bin/windows/Rtools/rtools43/rtools.html

→Rtools43 installer

5.基本操作

查看当前工作目录 :getwd()
设置工作目录 :setwd(dir = "路径")
注意:Rwindow语言路径使用’\’ 而R语言使用’/'
查看工作目录下的文件:list.files() 或者 dir()
查看帮助文档 :help.start();
函数详情 help(sum)
查看函数参数 args(函数名)
查看包帮助文档: help(package=包名vig)

> getwd()
[1] "C:/Users/xiaob/Desktop"
> setwd(dir = "C:/Users/xiaob/Desktop/Rwork")
> getwd()
[1] "C:/Users/xiaob/Desktop/Rwork"
> list.files()
character(0)
> dir()
character(0)

赋值符号 ‘<-’ (等号可以不推荐)
赋值给全局变量 ‘<<-’

> x<-2
> x
[1] 2
> x<<-5
> x
[1] 5
> z <- sum(1,2,3,4,5)
> z
[1] 15
> t <- min(1,2,3,4,5)
> t
[1] 1> ls()  #查看所有变量
[1] "t" "x" "y" "z"
> ls.str() #查看所有变量和变量值
t :  num 1
x :  num 5
y :  num 4
z :  num 15
> str(x)num 5
> rm(x) #删除变量
> x
Error: object 'x' not found
> rm(t,y,z) #删除多个变量
> z
Error: object 'z' not found> x<-2
> y<-4
> z<-8
> ls()
[1] "x" "y" "z"
> rm(list = ls())  #删除当前所有变量
> ls()
character(0)上下移动光标选择命令
> history()  #查看历史命令
> history(5) #查看最近5条命令

清除命令窗口:ctrl + L
注释:#
保存工作空间:> save.image()
退出R: >q()

6.R包

(一)安装
查看包:https://cran.r-project.org/web/views/
1.在线安装
安装包:>install.packages() #需要选择镜像站点
安装指定包 :>install.packages("包名")
会自动安装依赖包
查看所有本地包安装路径:>libPaths()
查看所有已安装包列表:>library()

手动更改镜像:Tools → Global option → Packages
2.GitHub安装
GitHub搜索包名

> install.packages("devtools")
> install.packages("remotes")
> devtools::install_github("仓库名/包名")

3.本地安装
github仓库先下载压缩包

> devtools::install_local("绝对路径")
#注意改反斜杠

(二)使用
载入包: library(包名) 或者 require(包名)
查看包帮助文档 >help(package="包名")
查看包基本信息 >library(help="包名")
输入包内索引名可以直接查看数据集(注意需要先载入)

library(vcd)
library(help="vcd")

在这里插入图片描述
在这里插入图片描述
查看包内函数: ls("package:包名")
查看包内所有数据集 data(package="包名")
移除加载包: detach("package:包名")

查看当前已安装R包 installed.packages()

7.内置数据集

查看内置全部数据集 >help(package="datasets")
简略查看全部数据集 >data()
访问数据集:输入数据集名称
查看某个数据集详细信息:help("数据集名称")

8.数据结构

数据类型:在这里插入图片描述在这里插入图片描述在这里插入图片描述

9.向量(集合)

1.基本操作
创建:>c(元素1,元素2,.....)

>x <- c(1,2,3,4)
>x
[1] 1 2 3 4#逻辑型向量必须大写
> z <- c(TRUE,T,F)
> z
[1]  TRUE  TRUE FALSE
> z <- c(True,T,F)
Error: object 'True' not found> c(1:20)  #生成1到20的等差数列[1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18
[19] 19 20> seq(from=1,to=100,by=2)  #生成步长为2的等差数列[1]  1  3  5  7  9 11 13 15 17 19 21 23 25 27 29 31 33 35
[19] 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71
[37] 73 75 77 79 81 83 85 87 89 91 93 95 97 99> seq(from=1,to=100,length.out=10)  #生成十个值的等差数列[1]   1  12  23  34  45  56  67  78  89 100#向量化编程,批量计算
> x <- c(1,2,3,4,5)
> y <- c(6,7,8,9,10)
> x*2+y
[1]  8 11 14 17 20> x[x>3]  #取出x中大于3的值
[1] 4 5 

2.向量索引
R索引从1开始

> x <- c(1:10) #生成1到10的等差数列
> x[1]  1  2  3  4  5  6  7  8  9 10
> length(x)  #集合长度
[1] 10
> x[3]
[1] 3
> x[-9]  #不输出第9个元素
[1]  1  2  3  4  5  6  7  8 10> x[c(2:6)]  #输出第2到第6个元素
[1] 2 3 4 5 6
> x[c(2,4,6)]  #输出2,4,6元素
[1] 2 4 6> y <- c(1:5)
> y[c(T,F,T,T,F)]  #只输出逻辑为真的值
[1] 1 3 4> y[y>2&y<5]
[1] 3 4> v <- c(1:3)
> v
[1] 1 2 3
> v[c(4,5,6)] <- c(4,5,6) 
> v
[1] 1 2 3 4 5 6
> v[20] <- 4
> v[1]  1  2  3  4  5  6 NA NA NA NA NA NA NA NA NA NA NA NA NA  4

插入向量

> v <- c(1:5)
> v
[1] 1 2 3 4 5
> append(x = v,values = 99,after = 2)  #在第二个元素后面插入99
[1]  1  2 99  3  4  5
rm(v) #删除整个向量

3.向量运算

> x <- 1:10
> x[1]  1  2  3  4  5  6  7  8  9 10
> x+1[1]  2  3  4  5  6  7  8  9 10 11
> x-3[1] -2 -1  0  1  2  3  4  5  6  7
> x <- x+1
> x[1]  2  3  4  5  6  7  8  9 10 11
> y <- seq(1,100,length.out = 10) #生成长度为10的等差数列
> y[1]   1  12  23  34  45  56  67  78  89 100
> x + y[1]   3  15  27  39  51  63  75  87  99 111
> x[1]  2  3  4  5  6  7  8  9 10 11
> y[1]   1  12  23  34  45  56  67  78  89 100
> x**y  #x的y次幂[1]  2.000000e+00  5.314410e+05  7.036874e+13[4]  5.820766e+23  1.039456e+35  2.115876e+47[7]  3.213876e+60  2.697216e+74  1.000000e+89
[10] 1.378061e+104
> y%%x #取余运算[1] 1 0 3 4 3 0 3 6 9 1
> y%/%x #整除运算[1] 0 4 5 6 7 8 8 8 8 9#判断是否元素包含
> c(1,2,3) %in% c(1,2,2,4,5,6)
[1]  TRUE  TRUE FALSE

函数

> x <- -5:5
> x[1] -5 -4 -3 -2 -1  0  1  2  3  4  5
> abs(x)  #绝对值[1] 5 4 3 2 1 0 1 2 3 4 5
> sqrt(x) #开根号[1]      NaN      NaN      NaN      NaN      NaN 0.000000 1.000000 1.414214 1.732051 2.000000
[11] 2.236068
Warning message:
In sqrt(x) : NaNs produced
> sqrt(25) #开根号
[1] 5
> log(16,base=2)  #2为底 16的对数
[1] 4
> log(16)  #自然对数
[1] 2.772589> exp(x)  #e的x次方[1] 6.737947e-03 1.831564e-02 4.978707e-02 1.353353e-01 3.678794e-01 1.000000e+00 2.718282e+00 7.389056e+00 2.008554e+01 5.459815e+01 1.484132e+02#ceiling(a) 返回不小于a的最小整数
> ceiling(c(-2.3,3.1415))
[1] -2  4#floor(x) 返回不大于x的最大整数
> floor(c(-2.3,3.1415))
[1] -3  3#trunc(x) 返回整数部分
> trunc(c(-2.3,3.1415))
[1] -2  3#roud(x,digits=保留小数位数) 对x四舍五入
> round(c(-2.3,3.1415))
[1] -2  3
> round(c(-2.3,3.1415),digits = 2)
[1] -2.30  3.14
#signif(x,digits=保留小数位数) 对x四舍五入  仅保留有效数字
> signif(c(-2.3,3.1415),digits=2)
[1] -2.3  3.1
> sin(x)[1]  0.9589243  0.7568025 -0.1411200 -0.9092974 -0.8414710  0.0000000  0.8414710  0.9092974[9]  0.1411200 -0.7568025 -0.9589243
> cos(x)[1]  0.2836622 -0.6536436 -0.9899925 -0.4161468  0.5403023  1.0000000  0.5403023 -0.4161468[9] -0.9899925 -0.6536436  0.2836622> vec <- 1:10
> vec[1]  1  2  3  4  5  6  7  8  9 10
> sum(vec)
[1] 55
> max(vec)
[1] 10
> min(vec)
[1] 1
> range(vec) #返回最大值最小值
[1]  1 10
> var(vec)  #返回向量的方差
[1] 9.166667
http://www.lryc.cn/news/3971.html

相关文章:

  • 【软件测试】企业测试面试题9道,从自我介绍到项目考察+回答......
  • 《Spring源码深度分析》第8章 数据库连接JDBC
  • ModuleNotFoundError的解决方案【已解决】
  • Vue驼峰与短横线分割命名中有哪些坑
  • 从文件中加载数据以及异常处理
  • 【JavaSE】方法的使用
  • ModelScope 垂类检测系列模型介绍
  • Linux | Linux卸载和安装MySQL(Ubuntu版)
  • 【C1】数据类型,常量变量,输入输出,运算符,if/switch/循环,/数组,指针,/结构体,文件操作,/编译预处理,gdb,makefile,线程
  • 【深度学习】pytorch的基础操作
  • MWORKS--同元软控MWORKS介绍、安装与使用
  • Python 解决dilb和face_recognition第三方包安装失败
  • Mac系统Mysql的8.0.22版本安装笔记和密码重置修改密码等问题方法
  • 驱动 | Linux | NVMe 不完全总结
  • 一个测试人员,在现阶段的环境下如何在测试行业发展和自我价值。
  • pwn手记录题2
  • CSS ~ 从入门到入坑。
  • 成都哪家机构的Java培训比较好,求一个不坑的?
  • 《爆肝整理》保姆级系列教程python接口自动化(十二)--https请求(SSL)(详解)
  • 离线数据仓库
  • 【前端】Vue项目:旅游App-(23)detail:房东介绍、热门评论、预定须知组件
  • JUC并发编程与源码分析
  • Spark09: Spark之checkpoint
  • 《剑指offer》:数组部分
  • 基于微信小程序图书馆座位预约管理系统
  • 剑指 Offer Day1——栈与队列(简单)
  • 详解Python正则表达式中group与groups的用法
  • Spring面试重点(三)——AOP循环依赖
  • 计算机网络之HTTP04ECDHE握手解析
  • 【MySQL数据库】主从复制原理和应用