R 学习手册

1. 认识 R和 RStudio

1.1 R和 RStudio 简介

R是使用广泛的统计计算和绘图分析软件,基于S语言编写,20世纪90年代初,由Ross Ihaka 和 Robert Gentleman 共同编写,2000年发行1.0.0版本。

RStudio是R语言的集成开发环境(IDE),RStudio之于R,相当于Pycharm之于python。RStudio是开源项目。

为什么要使用R :

  • 强大的绘图功能,能轻松绘制你想要的任何图像

  • 免费,开源

  • 强大的技术社区支持

R Markdown用来从 R 中创建文档和网页,Shiny 则是使用 R 创建交互式应用程序。

Style guide · Advanced R.

1.2 RStudio 界面介绍

左上:代码编辑栏。用于编辑代码,点击 run 即可运行。

左下:命令控制台,代码运行后,实时显示结果,如果出错,会进行报错。

右上:显示自定义的对象。

右下:查看文件、显示图像、获取包、获取帮助。

四个界面的大小可以自由拖动。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t80N3pjX-1661255284097)(https://jxinuhe8ml.feishu.cn/space/api/box/stream/download/asynccode/?code=ZDA5MzUzNTY4ZmQ0ZTA3YzU5YjQzMWVhNWJlZGRhMTRfUHBaZjhmQkZrdGdWTmlkQzRZcUdGTmh1UnhMVTVOS0dfVG9rZW46Ym94Y252YlF2UzhKZTRqSG1lNmxOQ3hPYVliXzE2NTk2OTgyNDA6MTY1OTcwMTg0MF9WNA)]

R具有庞大的生态,你在学习和使用R中遇到的问题,都可以通过help获取帮助。你可以点击上方的R help,跳转到右下角搜索想要的答案。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XZonPCQa-1661255284098)(https://jxinuhe8ml.feishu.cn/space/api/box/stream/download/asynccode/?code=NzY0MDA4Y2RlOWI4YWNlNDgwOWIzZjQ4MDg4YzU4YzhfdWVTWDdseThMakpleGRRV3VaMHNLdTJLNFpWZ0xGOUxfVG9rZW46Ym94Y25Pa05QQWJSdHZGMFhURklZM3RSd1FkXzE2NTk2OTgyNDA6MTY1OTcwMTg0MF9WNA)]

1.3 基本操作介绍

赋值

R 有一个最基本的概念——赋值,即把数据、表格等,赋予给一个新的变量,在R中赋值符号为 <-。比如:

x <- 2+3*6
y <- x
x = 56
y

输出结果为:

[1] 20

创建和保存文件

@todo

代码执行

使用Ctrl+Enter (command+return)执行本句代码,Ctrl+Shift+Enter (command+shift+return)执行文件中所有代码。

分隔符

当代码很长时,可以通过Ctrl (command) + shift + R插入像上面foo, bar风格符,增加代码可读性。

2. 向量(vector)

2.1 向量使用

对变量赋值,是R中的基本操作。赋值用符号<-,多个元素赋值可以使用c() (concatenate)函数.

x <- 5
num <- c(1, 4, 6, 19)

输出结果:

> nums
[1]  1  4  6 19

查看向量长度:

num <- c(1, 4, 6, 19)
length(num)

输出结果:

[1] 4

多个向量合并:

fruit_1 <- c("Apple","Banana","Carambola')
fruit_2 <- c("Durian","Haw","Lemon") 

fruits <- c(fruit_1, fruit_2, c("Papaya","Persimmon","Strawberry"))

fruits

输出结果为:

> fruits
[1] "Apple"      "Banana"     "Carambola"  "Durian"     "Haw"       
[6] "Lemon"      "Papaya"     "Persimmon"  "Strawberry"

2.2 从列表中提取需要的元素

和python一样,R也可以提取需要的元素,但和python不一样的是,R从第一个开始:

看下面一个列表

fruits <- c("Apple", "Banana", "Carambola", "Durian", "Haw", "Lemon" , "Papaya" ,  "Persimmon", "Strawberry")

fruits[3] # 提取第三个

fruits[c(2,5,7)] # 提取第2、5、7个

fruits[-c(2,5,7)] # 提取除了第2、5、7个的元素

fruits[c(2,5,7)] <- c("ON", "UP", "DOWN") # 第2,5,7个重新赋值

fruits[c(2:6)] # 提取第2,3,4,5,6个,包含第2个

fruits[2:6] # 提取第2,3,4,5,6个,包含第2个

fruits

运行结果分别是(注:上面代码必须单独运行,才能得到下面的结果,否则只会显示最后一个)

> fruits[3] # 提取第三个
[1] "Carambola"

> fruits[c(2,5,7)] # 提取第2、5、7个
[1] "Banana" "Haw"    "Papaya"

> fruits[-c(2,5,7)] # 提取除了第2、5、7个的元素
[1] "Apple"      "Carambola"  "Durian"     "Lemon"      "Persimmon" 
[6] "Strawberry"

fruits[c(2,5,7)] <- c("ON", "UP", "DOWN") # 第2,5,7个重新赋值
[1] "Apple"      "ON"         "Carambola"  "Durian"     "UP"        
[6] "Lemon"      "DOWN"       "Persimmon"  "Strawberry"

> fruits[c(2:6)] # 提取第2,3,4,5,6个,包含第2个
[1] "Banana"    "Carambola" "Durian"    "Haw"       "Lemon"    

> fruits[2:6] # 提取第2,3,4,5,6个
[1] "Banana"    "Carambola" "Durian"    "Haw"       "Lemon" 

2.3 生成器

2.3.1 元素重复

重复某个元素,基本格式如下:

(以下代码,上面是输入,下方为输出结果)

> rep(2, 3) # 把2重复3次;或rep(2, times = 3)
 [1] 2 2 2

在此基础上,可以延展很多变体:

> rep(c(1,2,3,4), 4) # 把1,2,3,4重复4次
 [1] 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
> rep(c(1:10), 2) # 1-10重复10次
 [1]  1  2  3  4  5  6  7  8  9 10  1  2  3  4  5  6  7  8  9 10
> rep(c(1, 2, 3), each = 3) # 把1, 2,3各重复4遍
 [1] 1 1 1 2 2 2 3 3 3
> rep(c(1, 2, 3), c(3, 2, 0)) # 把1, 2, 3分别重复3, 2, 0遍
 [1] 1 1 1 2 2
rep(8:15, rep(1:5, rep(1:2, 2:3))) # 把8(含)-15(含)分别重复1、2、3、3、4、4、5、5遍。注意每个元素与重复次数要对应,如8-15有8个元素,rep(1:5, rep(1:2, 2:3))也必须是8个原色
 [1]  8  9  9 10 10 10 11 11 11 12 12 12 12 13 13 13 13 14 14 14 14 14 15 15 15
[26] 15 15
2.3.2 等差数列
> seq(0, 15, 2) # 其实是`seq(from = 0, to = 15, by = 2)`的简写,表示0-15中,等差序列为2
 [1]  0  2  4  6  8 10 12 14
> seq(0, 20, length.out = 11) # 其实是`seq(from = 0, to = 20, length.out = 10`的简写。表示0-20中,按等差分成10个元素
 [1]  0  2  4  6  8 10 12 14 16 18 20
2.3.3 随机数

常见的随机数用runif(n, min, max)ÿ

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值