下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容。栏目后续章节的文章将深入概括R语言在临床研究和新药创新领域的应用,填补了国内R教材中尚未广泛覆盖的部分内容。
欢迎订阅我们专栏
.......前面部分请点击上面链接看原文(原文5613字)
3、数组(Array)
4、数据框(Data frame)
数组与矩阵有一定的相似性,都以规整的方式存储数据。但与矩阵不同的是,数组的维度可以大于 2,并且像矩阵一样,数组中的元素必须是同一类型的数据。而数据框则类似于矩阵形式的数据,然而它具有一个显著的优势,那就是数据框中的各列可以是不同类型的数据,比如可以同时包含数值型、字符型、逻辑型等多种不同类型的变量。这使得数据框在处理复杂和多样化的数据时非常灵活和实用。数据框可以使用data.frame()函数创建,每列的数据类型可以不同。
以下示例展示了使用 data.frame() 函数来创建一个关于高血压患者的数据框 patientdata ,其中包含患者的年龄(数值型)、性别(因子型)、患病预后状态(因子型)等不同类型的数据。
patientID <- c(1:4)
age <- c(55, , 58, 62)
sex <- as.factor(c("Male", "Female", "Male", "Female"))
status <- as.factor(c("Poor", "Improved", "Excellent", "Improved"))
patientdata <- data.frame(patientID, age, sex, status)
print(patientdata)
输出结果:
patientID age sex status
1 1 55 Male Poor
2 2 Female Improved
3 3 58 Male Excellent
4 4 62 Female Improved
输出结果:
生成正态分布随机数是数据分析和模拟中的常见任务。在R语言中,rnorm()函数被广泛用于生成正态分布的随机数。我们可以使用该函数来生成50个服从标准正态分布的随机数,并将这些随机数创建成一个5列的矩阵。接下来,我们会使用head()函数查看矩阵的前两行。
mat.1 <- matrix(rnorm(50), ncol = 5)
colnames(mat.1) <- c("a", "b", "c", "d", "e")
head(mat.1, n = 2)
输出结果:
a b c d e
[1,] 2.092190 0.502715552 -0.47362 -1.769090 0.1247273
[2,] 1.4235 -0.005080861 -0.686 1.388739 -2.4386240
在上述代码中,我们生成了一个50个随机数的矩阵,并将其前两行输出。
使用dplyr包创建和查看数据框
dplyr是R语言中的一个非常流行的数据操作包,它提供了简单且直观的语法来进行数据操作。dplyr主要用于数据帧(data frame)的操作,包括过滤行、选择列、重新排序、添加新列、以及汇总数据等。其中,as_tibble()函数可以将矩阵转换为数据框,并显示更多信息(记得要先自行安装dplyr扩展包):
library(dplyr)
df.1 <- as_tibble(mat.1)
print(df.1)
输出结果:
# A tibble: 10 × 5
a b c d e
<dbl> <dbl> <dbl> <dbl> <dbl>
1 2.09 0.503 -0.474 -1.77 0.125
2 1. -0.00508 -0.7 1.39 -2.44
3 1.65 -0.676 -0.540 1.99 0.278
4 0.0208 0.272 0.634 0.857 1.74
5 -0.948 2.10 0.317 1.25 -0.985
6 0.383 0.470 -0.387 1.41 -0.2
7 0.504 0.611 0.773 -0.110 -1.56
8 -1.21 1.81 -1.38 1. -2.15
9 0.572 -2.74 0.900 -0.926 -0.498
10 -1.33 -2.09 1.42 -0.628 -0.627
5、列表(List)
第一章:认识数据科学和R
第二章:R的安装和数据读取
第三章:认识数据
第四章:数据的预处理
第五章:定量数据的统计描述
第六章:定性数据的统计描述
第七章:R的传统绘图
第八章:R的进阶绘图
第九章:临床试验的统计