讲清楚R数据结构中的向量

下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容。栏目后续章节的文章将深入概括R语言在临床研究和新药创新领域的应用,填补了国内R教材中尚未广泛覆盖的部分内容。​​​​​​​3章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算-CSDN博客文章浏览阅读136次。本文详细介绍了R语言中常见的数据结构的向量和矩阵。通过掌握这些数据结构的基本概念和操作技巧,可以更高效地处理和分析数据。https://blog.csdn.net/2301_79425796/article/details/140734026?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22140734026%22%2C%22source%22%3A%222301_79425796%22%7D

欢迎订阅我们专栏

.......前面部分请点击上面链接看原文(原文5426字)

 二、R的数据结构

1、向量(Vector)

向量是R语言中最基础的数据结构,几乎所有其他数据结构都是由向量构成的。向量可以包含数值、字符、逻辑值、复数等类型的数据。

数值型向量(Numeric Vector)

数值向量(Numeric vector)指的是由数值构成的向量。单个的数值(即标量数值)属于最简单的数值向量。数值向量属于最常运用的数据类型,并且几乎是所有数据分析的基础。接下来,我们通过函数 c()来生成一个整数值变量。

例如:
a <- c(1, 2, 3, 4, 5.5)

print(a)

输出结果为:

[1] 1.0 2.0 3.0 4.0 5.5
创建连续的整数值向量

如果想要创建一系列连续的整数值,运算符“:”能够轻松达成这一目标,在变量 b 中即为 1 到 6 的整数值。运算符“:”可用于创建连续的整数值向量,例如:

b <- c(1:6)

print(b)

输出结果为:

[1] 1 2 3 4 5 6
使用seq()函数创建向量

seq()函数的功能与“:”类似,但可以更灵活地设置递增的步长。例如:

c <- seq(5, length.out = 8, by = 0.5)

print(c)

输出结果为:

[1] 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5
使用rep()函数创建重复序列

rep()函数可以帮助我们构建一个重复的序列,其中times参数设置序列总重复数,each参数设置每次重复的元素重复次数。例如:

d <- rep(c(1, 2, 3), times = 3, each = 2)

print(d)

输出结果为:

[1] 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3
字符型向量(String Vector)

字符型向量(String vector)是由字符或者字符串所组成的向量,其能够通过函数 c() 或者 cat() 来构建。下面以高血压的三个类型作为字符串的内容,生成一个具有 6 个元素、包含中文和英文的混杂字符型向量 x_string 。

x_string <- c("ISH", "单纯收缩型高血压", "IDH", "单纯舒张型高血压", "SDH", "混合型高血压")

print(x_string)

输出结果为:

[1] "ISH" "单纯收缩型高血压" "IDH" "单纯舒张型高血压" "SDH" "混合型高血压"

在编程语言中,如果需要在一个字符串内部包含双引号,就需要使用转义字符来避免语法错误。转义字符通常是反斜杠(\),它告诉解释器接下来的字符是特殊字符,不是普通字符。

例如,在R语言中,如果你想在一个字符串内部包含双引号,你需要在双引号前加上反斜杠(\)来进行转义。假设你想要创建一个字符串,内容是:I "Love" China,你可以这样写:

str <- "I \"Love\" China"

print(str)
  • \"表示一个双引号,但它不会被解释为字符串的结束,而是字符串内容的一部分。

输出结果会是:

[1] "I \"Love\" China"

如果你需要显示完整的字符串,包括外部的双引号,你可以用单引号来定义字符串,或者用cat()函数:

cat('I "Love" you')

输出结果会是:

I "Love" you
布尔型向量(Logical Vector)

布尔型向量又被称作“逻辑向量”,简单来讲,就是由 TRUE 和 FALSE 构成的向量。布尔型向量基本上是以“是”或“否”来体现对一组逻辑问题的回答。

在第一行代码中,2 大于 1,其回答为 TRUE 。

print(2 > 1)

输出结果为:

[1] TRUE

接着在第二行代码中,R 会理解为在 c(2,1) 和 1 之间依次进行元素比较,这等价于 c(2>1,1>2) ,所以回复为 TRUE 和 FALSE 。

print(c(2, 1) > 1)

输出结果为:

[1] TRUE FALSE
因子型向量(Factor Vector)

因子型向量(Factor vector)是将数据存储为整数值向量的一种分类变量(Categorical variables)。它可分为无序分类变量(Unordered categorical variable)和有序分类变量(Categorical variable)两类。其中,在因子变量中所包含的非重复值被称作因子水平。函数 factor() 是以整数向量的形式来存储类别值,其取值范围是[1…k](这里的 k 是名义型变量中唯一值的个数),同时一个由字符串(原始值)构成的内部向量会映射到这些整数上。

创建无序因子

高血压类型 Hypetension(ISH、IDH、SDH)属于因子向量的无序分类变量,在数据中 ISH 编码为 1,IDH 编码为 2,SDH 编码为 3。

hypertension <- factor(c("ISH", "IDH", "SDH", "SDH")) 
print(hypertension)

输出结果为:

[1] ISH IDH SDH SDH Levels: IDH ISH SDH
创建有序因子

疾病状态 Status(poor、improved、excellent)则是因子向量的有序分类变量。

status <- factor(c("Poor", "Improved", "Excellent", "Poor"), levels = c("Poor", "Improved", "Excellent"), ordered = TRUE)

print(status)

输出结果为:

[1] Poor Improved Excellent Poor Levels: Poor < Improved < Excellent

2、矩阵(Matrix)

 ........

在这里,你学到的并非仅仅是 R 的某一个技巧,而是能够从零开始,深入且系统地学习 R 语言。此外,本专栏每周至少定期更新三篇文章,每篇文章篇幅均在 5000 字以上,质量平均分更是高达 93 分。而且,对于已经发表的知识点,我们也会根据新的技术或理解及时进行更新,这是纸质版图书无法做到的。为了让更多的忠实粉丝和同学们享受到实惠,本专栏采用折扣定价策略。随着章节的不断完成,折扣力度会逐渐减小。所以,现在正是订阅的最佳时机!

https://blog.csdn.net/2301_79425796/category_12729892.html?spm=1001.2014.3001.5482

​​​​​​

第一章:认识数据科学和R

1章1节:数据科学的发展历程,何 R 备受青睐及我们专栏的独特之处(更新20240822)-CSDN博客

1章2节:关于人工智能、机器学习、统计学连和机器学习、R 与 ChatGPT 的探究 (更新20240814)-CSDN博客

1章3节:R 语言的产生与发展轨迹(更新2024/08/14)-CSDN博客

1章4节:数据可视化, R 语言的静态绘图和 Shiny 的交互可视化演示(更新20240814)-CSDN博客

第二章:R的安装和数据读取

2章1节:R和RStudio的下载和安装(Windows 和 Mac)_rst语言选择哪个镜像-CSDN博客

2章2节:RStudio 四大区应用全解,兼谈 R 的代码规范与相关文件展示_rstudio的console和terminal-CSDN博客

2章3节:RStudio的高效使用技巧,自定义RStudio环境(更新20240823)_rstudio如何使用-CSDN博客

2章4节:用RStudio做项目管理,静态图和动态图的演示,感受ggplot2的魅力-CSDN博客

2章5节:认识和安装R的扩展包,什么是模糊搜索安装,工作目录和空间的区别与设置(​​​​​​​更新20240807 )-CSDN博客

2章6节:R的数据集读取和利用,如何高效地直接复制黏贴数据到R(​​​​​​​更新20240807 )_r语言 复制数据集-CSDN博客

2章7节:读写RDS,CSV,TXT,Excel,SPSS、SAS、Stata、Minitab等的数据文件(更新20240807)_r语言读取rds文件-CSDN博客

2章8节:一文学会 R Markdown 的文档核心操作,切记文末有R资源的分享_r markdown文件(.rmd)-CSDN博客

2章9节:认识R与数据库连接和网络爬虫,学会在R中使用SQL语言_sql和r语言-CSDN博客

2章10节:用 R 直接下载并分析 NHANES 数据库的数据,文末示例自创便捷下载函数(更新20240807)_nhanes数据分析-CSDN博客

第三章:认识数据

3章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算-CSDN博客

3章2节:继续讲R的数据结构,数组、数据框和列表-CSDN博客

3章3节:R的赋值操作与算术运算_r里面的赋值-CSDN博客

3章4节:R的逻辑运算和矩阵运算-CSDN博客

3章5节:R 语言的循环与遍历函数全解析-CSDN博客

第四章:数据的预处理

4章1节:全面了解 R 中的数据预处理,通过 R 基本函数实施数据查阅_r数据预处理-CSDN博客

4章2节:从排序到分组和筛选,通过 R 的 dplyr 扩展包来操作-CSDN博客

4章3节:处理医学类原始数据的重要技巧,R语言中的宽长数据转换,tidyr包的使用指南-CSDN博客

4章4节:临床数据科学中如何用R来进行缺失值的处理_临床生存分析缺失值r语言-CSDN博客

4章5节:数据科学中的缺失值的处理,删除和填补的选择,K最近邻填补法-CSDN博客

4章6节:R的多重填补法中随机回归填补法的应用,MICE包的实际应用和统计与可视化评估-CSDN博客

4章7节:用R做数据重塑,数据去重和数据的匹配-CSDN博客

4章8节:用R做数据重塑,行列命名和数据类型转换-CSDN博客

4章9节:用R做数据重塑,增加变量和赋值修改,和mutate()函数的复杂用法_r语言如何在数据集中添加变量-CSDN博客

4章10节:用R做数据重塑,变体函数应用详解和可视化的数据预处理介绍-CSDN博客

4章11节:用R做数据重塑,数据的特征缩放和特征可视化-CSDN博客

4章12节:R语言中字符串的处理,正则表达式的基础要点和特殊字符-CSDN博客

4章13节:R语言中Stringr扩展包进行字符串的查阅、大小转换和排序-CSDN博客

4章14节:R语言中字符串的处理,提取替换,分割连接和填充插值_r语言替换字符串-CSDN博客

4章15节:字符串处理,提取匹配的相关操作扩展,和Stringr包不同函数的重点介绍和举例-CSDN博客

4章16节:R 语言中日期时间数据的关键处理要点_r语言 时刻数据-CSDN博客

第五章:定量数据的统计描述

5章1节:用R语言进行定量数据的统计描述,文末有众数的自定义函数-CSDN博客

5章2节:离散趋势的描述,文末1个简单函数同时搞定20个结果-CSDN博客

5章3节:在R语言中,从实际应用的角度认识假设检验-CSDN博客

5章4节:从R语言的角度认识正态分布与正态性检验-CSDN博客

5章5节:认识方差和方差齐性检验(三种方法全覆盖)-CSDN博客

5章6节:R语言中的t检验,独立样本的t检验-CSDN博客

5章7节:单样本t检验和配对t检验-CSDN博客

5章8节:方差分析(ANOVA)及其应用-CSDN博客

5章9节:组间差异的非参数检验,Wilcoxon秩和检验和Kruskal-Wallis检验-CSDN博客

第六章:定性数据的统计描述 

6章1节:定性数据的统计描述之列联表,文末有优势比计算介绍-CSDN博客

6章2节:认识birthwt数据集,EpiDisplay和Gmodels扩展包的应用-CSDN博客

6章3节:独立性检验,卡方检验,费希尔精确概率检验和Cochran-Mantel-Haenszel检验-CSDN博客​​​​​​​

6章4节:相关关系和连续型变量的Pearson相关分析-CSDN博客​​​​​​​

6章5节:分类型变量的Spearman相关分析,偏相关分析和相关图分析-CSDN博客

6章6节:相关图的GGally扩展包,和制表的Tableone扩展包-CSDN博客​​​​​​​

第七章:R的传统绘图

​​​​​​​7章1节:认识R的传统绘图系统,深度解析plot()函数和par()函数的使用-CSDN博客

7章2节:R基础绘图之散点图、直方图和概率密度图-CSDN博客

7章3节:R基础绘图之条形图和堆积条形图-CSDN博客

7章4节:饼图,箱线图和克利夫兰点图-CSDN博客

7章5节:散点矩阵图,与小提琴图、Cleveland 点图、马赛克图和等高图-CSDN博客

7章6节:用R进行图形的保存与导出,详细的高级图形输出,一文囊括大多数保存的各种问题,和如何批量保存不同情况的图形-CSDN博客

第八章:R的进阶绘图

8章1节:认识 ggplot2 扩展包,深度解析 qplot() 函数的使用-CSDN博客

 8章2节:深度讲解 ggplot2 的绘图步骤,理解其核心逻辑, 和 ggplot()函数-CSDN博客

 8章3节:用R来绘制医学地理图,文末有具体完整代码-CSDN博客

 8章4节:维恩图的认识与应用,和使用UpSet图-CSDN博客

 8章5节:用R绘制平行坐标图-CSDN博客​​​​​​​

8章6节:雷达图及RadViz图-CSDN博客

8章7节:词云图,矩形树状图和三维散点图-CSDN博客

 ​​​​​​​8章8节:绘制自定义的高质量动态图和交互式动态图-CSDN博客

第九章:临床试验的统计

9章1节:初步认识临床试验(约7500字)-CSDN博客

9章2节:样本量估计的初步介绍-CSDN博客

9章3节:用R进行样本量估计的统计学参数-CSDN博客

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据科学和人工智能兴趣组

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值