STATS 782 - R Basic Concepts

这篇具有很好参考价值的文章主要介绍了STATS 782 - R Basic Concepts。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本系列是 STATS 782的课程笔记,主要记录使用 R 语言的一些技巧。


一、R basic

1. R Operator

STATS 782 - R Basic Concepts
①:→ 生成数字序列

> 1:50
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
[18] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
[35] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

② %% → 取余(求模)

5 %% 2
# 输出结果为 1,因为 5 除以 2 的余数是 1

③ %/% → 整除

7 %/% 3
# 输出结果为 2,因为 7 除以 3 的商是 2.3333,整数部分为 2

2. 变量赋值

STATS 782 - R Basic Concepts

3. c() - combine 函数

用于创建一维向量(vector)和组合数据,可以将多个数值、字符或逻辑值组合成一个向量:

① 创建一个数值向量:

num_vector <- c(1, 2, 3, 4, 5)
> num_vector
[1] 1 2 3 4 5

② 组合已有的向量:

vector1 <- c(1, 2, 3)
vector2 <- c(4, 5, 6)
combined_vector <- c(vector1, vector2)

③ The Recycling Rule:
当 c 函数合并的两个向量长度不同时,

First enlarge the shorter vector by recycling its elements, then combine the vectors element by element.

> c(1, 2, 3, 4) + c(1, 2)
[1] 2 4 4 6

STATS 782 - R Basic Concepts

4. 对向量的操作

① 截取向量:
R语言中向量的索引从 1 开始,

> vector_total
[1] 1 0 2 4

> vector_total[1]
[1] 1

> vector_total[1:3]
[1] 1 0 2

> vector_total[c(1, 3)]
[1] 1 2

> vector_total[c(-1, -3)]
[1] 0 4

或截取满足条件的向量value:

> x = c(1, 2, 3, 4)
> x[x > 2]
[1] 3 4

② 改变向量 value
先获取向量,再赋值,即可完成修改value,

> vector_total[1:3] <- 0
> vector_total
[1] 0 0 0 4

使用 ifelse 函数修改:

> x = 1:10
> ifelse(x > 5, x, -x)
[1] -1 -2 -3 -4 -5 6 7 8 9 10

5. Special Numerical Values

① Infinity:
0 作为分母时,根据分子的正负值,得到结果正无穷 / 负无穷

> 1 / 0
[1] Inf
> -1 / 0
[1] -Inf

② NaN:
Not a Number,特殊的常量,代表 “Not a Number”(非数值)。NaN 通常是由数学运算的未定义或不可表示结果导致的:

sqrt(-1)  # 对负数开平方根
# 输出结果为 NaN

0 / 0  # 0 除以 0
# 输出结果为 NaN

log(-1)  # 对负数取对数
# 输出结果为 NaN

③ NA:
Not Available,indicate that a value is missing or not available:

# Any arithmetic expression which contains NA will produce NA as a result.
> 1 + sin(NA)
[1] NA

二、 Built-in Functions

STATS 782 - R Basic Concepts

1. min, max and range

The functions min and max return the minimum and maximum values contained in any of their arguments, and the function range returns a vector of length 2 containing the minimum and maximum of the values in the arguments.

> max(1:100)
[1] 100
> max(1:100, Inf)
[1] Inf
> range(1:100)
[1] 1 100

2. sum and prod

The functions sum and prod compute the sum and product of all the elements in their arguments.

> sum(1:100)
[1] 5050
> prod(1:10)
[1] 3628800

3. Cumulative Summaries

> cumsum(1:10)
[1] 1 3 6 10 15 21 28 36 45 55
> cumprod(1:6)
[1] 1 2 6 24 120 720
> cummax(1:10)
[1] 1 2 3 4 5 6 7 8 9 10
> cummin(1:10)
[1] 1 1 1 1 1 1 1 1 1 1

4. paste

Strings can be “glued together” by using paste.
默认以空格分隔:

> paste("First", "Second", "Third")
[1] "First Second Third"

> paste("First", "Second", "Third", sep = ":")
[1] "First:Second:Third"

> paste("First", "Second", "Third", sep = "")
[1] "FirstSecondThird"

对向量进行操作:

> paste(s, "element", sep = "-")
[1] "initial-element" "second-element"
[3] "third-element"

> paste(s, collapse = " -> ")
[1] "initial -> second -> third"

5. list()

The elements of vectors must all be of the same basic type. Lists provide a way of storing things of different types in a single object.

> lst = list(10, "eleven", TRUE)

> lst = list(1:10, "eleven", TRUE)
> lst
[[1]]
 [1]  1  2  3  4  5  6  7  8  9 10

[[2]]
[1] "eleven"

[[3]]
[1] TRUE

6. seq()

功能与 “:” 类似,但 “:” 步进只能为 1,

> seq(0, 1, by = .1)
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> seq(0, 1, length = 11)
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> seq(0, by = .1, length = 11)
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> seq(to = 1, by = .1, length = 11)
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

7. rep()

The first argument to rep gives the values to be repeated and the second specifies how many times to repeat them.

> rep(1:4, 3)
[1] 1 2 3 4 1 2 3 4 1 2 3 4

> rep(1:4, c(2, 3, 2, 3))
[1] 1 1 2 2 2 3 3 4 4 4

> rep(c("A", "B", "C"), 3)
[1] "A" "B" "C" "A" "B" "C" "A" "B" "C"

总结

本文回顾了 STATS 782 第一章节的内容,介绍了R语言的基本运算符,数据类型等,以及一些常用的内置函数。文章来源地址https://www.toymoban.com/news/detail-422258.html

到了这里,关于STATS 782 - R Basic Concepts的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始学Spring Boot系列-前言

    在数字化和信息化的时代,Java作为一种成熟、稳定且广泛应用的编程语言,已经成为构建企业级应用的首选。而在Java生态系统中,Spring框架无疑是其中最为耀眼的一颗明星。它提供了全面的编程和配置模型,用于构建企业级应用。随着Spring Boot的出现,这一框架变得更加易于

    2024年02月22日
    浏览(59)
  • Concepts基本概念

    本文档参考backtrader官方文档,是官方文档的 完整中文翻译 ,可作为backtrader中文教程、backtrader中文参考手册、backtrader中文开发手册、backtrader入门资料使用。 查看本专栏完整内容,请访问:https://blog.csdn.net/windanchaos/category_12350607.html

    2024年02月07日
    浏览(38)
  • c++20 concepts的理解

    concepts在c++20中被引入,其作用是对模板参数进行约束,极大地增强了c++模板的功能。 在c++20之前,如果希望获取类似的效果,使用起来并不方便。 static_assert 我们可以使用static_assert去对模板类型T进行约束。如下所示: 但是该种方法不太好,因为需要将static_assert嵌入到函数

    2024年02月09日
    浏览(35)
  • 掌握C++20的革命性特性:Concepts

    C++20 引入了 Concepts,这是一种用于限制类和函数模板的模板类型和非类型参数的命名要求。Concepts 是作为编译时评估的谓词,用于验证传递给模板的模板参数。Concepts 的主要目的是使模板相关的编译器错误更易于人类阅读。 我们都遇到过这样的情况:当为类或函数模板提供错

    2024年01月20日
    浏览(56)
  • Postman发送请求报错【{ “timestamp“: “2022-09-30T07:12:17.782+00:00“, “status“: 400, “error“: “】

    原因是你没有在POSTMAN里面携带请求入参内容: 还有需要按照要求检查入参实体类属性对应上 和看控制台的打印信息即可解决。 例如: 2022-09-30 15:13:35.248 WARN 3948 — [io-9020-exec-10] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation

    2024年02月16日
    浏览(44)
  • 【0218】当SIGQUIT kill掉stats collector后,stats collector如何保存最终统计数据

    stats collector进程的主体函数是 PgstatCollectorMain() ,该函数内部完成了stats collector进程的信号注册、现有统计文件读取、消息处理等任务。 忽略通常与postmaster中的某些操作绑定的所有信号, SIGHUP 和 SIGQUIT 除外。 注意,我们不需要 SIGUSR1 处理程序来支持latch 操作,因为我们只使

    2024年02月10日
    浏览(97)
  • Stable Diffusion系列课程二:ControlNet

    AUTOMATIC1111/stable-diffusion-webui 参考B站Nenly视频《零基础学会Stable Diffusion》、视频课件 推荐网站:stable-diffusion-art、Civitai(魔法) 、libilibi、AI艺术天堂 推荐Stable Diffusion整合资料: NovelAI资源整合、《AI绘图指南wiki》、AiDraw绘画手册 重 绘学派法术绪论1.2、 Stable Diffusion 潜工具

    2024年02月14日
    浏览(68)
  • 统计思维系列课程03:随机变量及其分布

    在相同的条件下,如果每次试验可能出现这样或那样的结果,我们对随机事件进行数量化,用 X 表示所有可能的事件,也就是说 X 可以有不同的取值,用 P(X) 表示 X 取不同的值时对应事件发生的概率,如果我们把 P(X) 称作概率函数( probability function ),那么这里的 

    2024年04月23日
    浏览(40)
  • 【大模型AIGC系列课程 3-1】Meta开源大模型:羊驼系列

    https://arxiv.org/abs/2302.13971 LLaMA(由Meta推出)和GPT是两种不同的语言模型。以下是LLaMA相对于GPT的一些优点: ● 架构修改:LLaMA在Transformer架构的基础上进行了一些修改。例如,LLaMA使用了预归一化(pre-normalization)而不是后归一化(post-normalization)的方法,这可以提高训练的稳

    2024年02月11日
    浏览(32)
  • 【大模型AIGC系列课程 2-1】文本向量化

    词汇表征是指我们在自然语言处理(NLP)中如何描述和处理词语的方法。在进行NLP监督机器学习任务时,我们以一句话为例:“I want a glass of orange ____”,我们要通过这句话中的其他单词来预测空白处的单词。这是一个典型的NLP问题。如果将其看作监督机器学习,我们的输入

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包