R语言学习笔记

news2024/12/27 14:11:12

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.coloradmin.cn/o/340315.html

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

相关文章

【Call for papers】SIGCOMM-2023(CCF-A/计算机网络/2023年2月15日截稿)

ACM SIGCOMM is the flagship annual conference of the ACM Special Interest Group on Data Communication (SIGCOMM). ACM SIGCOMM 2023, the 37th edition of the conference series, will be held in New York City, US, September 10 - 14, 2023. 文章目录1.会议信息2.时…

C语言(文件输入输出操作)

目录 一.文件 1.文件概念 2.文本模式和二进制模式 (1)模式结尾映射 (2)存储精度 3.I/O级别 一.文件 1.文件概念 文件:在磁盘或固态硬盘上一段已命名的存储区。对于C来说&#xff0c;文件就是一系列连续的字节&#xff0c;每个字节都能被单独读取&#xff08;在计算机当…

【C00033】基于Springboot的图书管理系统——有文档

基于Springboot的图书管理系统——有文档项目简介项目获取开发环境项目技术运行截图运行视频项目简介 基于springboot技术的图书管理系统主要是想研究一款高效且智能的图书管理系统&#xff0c;可以方便管理员以及借阅人员通过本系统更加快捷的完成图书借阅、查找等一系列操作…

ChatGPT不是聊天机器人,是任何人值得重视的竞争对手。

ChatGPT使用了一种聊天界面来和用户互动&#xff0c;用户的理解成本降低&#xff0c;通过输入文字&#xff0c;来得到各种反馈。有预见性的创造者们&#xff0c;已经挖掘ChatGPT所展示出来的各种能力应该如何更好地融入我们的日常生活中。比如&#xff0c;生成菜谱、音乐播放列…

1496奇怪的电梯(队列 广度优先搜索)

目录 题目描述 解题思路 代码部分 题目描述 大楼的每一层楼都可以停电梯&#xff0c;而且第i层楼&#xff08;1≤i≤N&#xff09;上有一个数字Ki(0≤Ki≤N&#xff09;。电梯只有四个按钮&#xff1a;开&#xff0c;关&#xff0c;上&#xff0c;下。上下的层数等于当前楼层…

套接字编程(四)TCP通信(万字详论)

TCP协议&#xff1a;面向连接的、可靠稳定的、基于字节流传输的通信协议 面向连接&#xff1a;通信之前首先要建立连接&#xff0c;确保双方具有收发数据的能力 可靠稳定的&#xff1a;通过大量的控制机制&#xff0c;保证数据能够安全有序且完整的到达对端 基于字节流&#xf…

【Vue3源码】第一章 effect和reactive

文章目录【Vue3源码】第一章 effect和reactive前言1、实现effect函数2、封装track函数&#xff08;依赖收集&#xff09;3、封装reactive函数4、封装trigger函数&#xff08;依赖触发&#xff09;5、单元测试【Vue3源码】第一章 effect和reactive 前言 今天就正式开始Vue3源码…

驱动 | Linux | NVMe 不完全总结

本文主要参考这里 1’ 2 的解析和 linux 源码 3。 此处推荐一个可以便捷查看 linux 源码的网站 bootlin 4。 更新&#xff1a;2022 / 02 / 11 驱动 | Linux | NVMe 不完全总结NVMe 的前世今生从系统角度看 NVMe 驱动NVMe CommandPCI 总线从架构角度看 NVMe 驱动NVMe 驱动的文件…

vue+nodejs考研资料分享系统vscode - Visual Studio Code

前端技术&#xff1a;nodejsvueelementui,视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面要能够和控制器类进行交互&#xff0c;从而使得用户在点击网页进行操作时能够正常。 Express 框架于Node运行环境的Web框架, 目 …

计算机网络5:数据在两台计算机之间是怎样传输的?

数据在两台计算机之间的传输总的来说包括了封装和解封两个过程 封装&#xff08;5层协议&#xff09; 以传送一张图片为例 **应用层&#xff1a;**将jpg格式的图片数据转化成计算机可以识别的0101的二进制的比特流 **传输层&#xff1a;**将应用层传输下来的数据进行分段&…

pandas数据分析35——多个数据框实现笛卡尔积

什么是笛卡尔积。就是遍历所有组合的可能性。 比如第一个盒子有[1,2,3]三个号码球&#xff0c;第二个盒子有[4,5]两个号码球。那么从每个盒子里面分别拿一个球共有3*2两种可能性&#xff0c;其集合就是{[1,4],[2,4],[3,4],[1,5],[2,5],[3,5]},这个就是笛卡尔积。 三个盒子也是…

GhostNet v2(NeurIPS 2022 Spotlight)原理与代码解析

paper&#xff1a;GhostNetV2: Enhance Cheap Operation with Long-Range Attentioncode&#xff1a;https://github.com/huawei-noah/Efficient-AI-Backbones/tree/master/ghostnetv2_pytorch背景在智能手机和可穿戴设备上部署神经网络时&#xff0c;不仅要考虑模型的性能&…

批量分析快递单号派件时效技巧

规定&#xff0c;如果出现派件延误商家没有及时处理&#xff0c;那么平台会对商家进行采取措施等等&#xff0c;同时商家每天都去跟踪自己发出单号物流状况&#xff0c;一个一个去查呢&#xff0c;不大可能&#xff0c;他们量是比较大&#xff0c;一个一个手动去官方查询工作量…

从元宇宙被认识的第一天开始,就注定了逃不脱区块链所经历的命运

从元宇宙被人们认识的第一天开始&#xff0c;它就注定了依然逃不脱它的先辈——区块链所经历的命运。如果对这样一种宿命进行一个总结的话&#xff0c;我更加愿意将其归结为以资本为主导的野蛮生长的发展模式。这种发展模式并不仅仅只是在区块链和元宇宙的身上出现&#xff0c;…

2016-ICLR-Order Matters- Sequence to sequence for sets

2016-ICLR-Order Matters- Sequence to sequence for sets Paper: [https://arxiv.org/pdf/1511.06391.pdf](https://arxiv.org/pdf/1511.06391.pdf) Code: 顺序重要性&#xff1a;集合的顺序到序列 摘要 许多需要从观察序列映射或映射到观察序列的复杂任务现在可以使用序列…

C++类基础(十一)

运算符重载&#xff08;二&#xff09; ● 对称运算符通常定义为非成员函数以支持首个操作数的类型转换 struct Str {int val 0;Str(int input): val(input){}auto operator(Str x){std::cout << "auto operator(Str x)\n";return Str(val x.val);} }; int …

git 常用命令之 git log

大家好&#xff0c;我是 17。 git log dev 查看 dev 分支的 log git log -p 每次提交所引入的差异 git log --stat 每次提交的简略统计信息 git log --name-status 比 --stat 更简洁&#xff0c;更常用。git log -2 最近两次提交 git log --since2.weeks 最近两周内的提交 git…

Linux通配符、转义符讲解

目录 通配符 通过通配符定义匹配条件 转义符 将所有的逻辑操作符都转换成字符 通配符 通过通配符定义匹配条件 * 任意字符都可以通配&#xff08;也可以匹配空值&#xff09; &#xff1f; 匹配单个字符 [a-z] 匹配单个的小写英文字母 [A-Z] 匹配单个的大写英文…

jQuery 基础知识(五)

前面已经介绍HTML、CSS和javaScript&#xff0c;这三个前端语言&#xff0c;俗称前端三剑客。下面来学习一个javaScript简化并封装好的库——jQuery库。01 - AJAX AJAX 是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。 AJAX的介绍 ajax 是 Asynchr…

freesurfer如何将组模板投影到个体空间——如投影 Schaefer2018 到个体空间

freesurfer如何将组模板投影到个体空间——如投影 Schaefer2018 到个体空间 freesurfer如何将组模板投影到个体空间? freesurfer如何将组模板投影到个体空间——如投影 Schaefer2018 到个体空间freesurfer的整理流程freesurfer的安装freesurfer对结构像分割流程及批处理代码fr…