> list1 <- list(a = 1, b = 1:5, c = c("red", "blue", "green"))> list1$a[1] 1$b[1] 1 2 3 4 5$c[1] "red""blue""green"
注意,函数list( )的参数由一系列新对象组成,这些对象从现有对象或值中分配值 。显示列表时,每个新对象名都以符号“$”作为前缀 。
在普通的数据分析中,创建列表并不是一项常见的任务 。但是,很多函数的返回值是一个列表 。例如:
> set.seed(123)> dat <- rnorm(10) > bp <- boxplot(dat)> class(bp)[1] "list"
上面的命令用函数rnorm( )从标准正态分布中生成了一个由10个数组成的随机样本 。为了使结果具有可重复性,我们在该命令前用函数set.seed( )设置了生成随机数的种子 。如果不设定种子,每次显示的结果很可能不同 。然后,用函数boxplot( )对这个随机样本作箱线图,并把结果保存为bp 。函数class( )用于查看对象的类型,这里bp是一个列表 。查看这个列表里面的内容:
> bp$stats[,1][1,] -1.26506123[2,] -0.56047565[3,] -0.07983455[4,]0.46091621[5,]1.71506499$n[1] 10$conf[,1][1,] -0.5901626[2,]0.4304935$outnumeric(0)$groupnumeric(0)$names[1] "1"
这里列表bp包含了多个对象,如果想查看或使用某一个对象,只需用“$”符号引用 。例如,要查看列表bp中的对象stats的内容,可以输入:
> bp$stats[,1][1,] -1.26506123[2,] -0.56047565[3,] -0.07983455[4,]0.46091621[5,]1.71506499
2.1.6 数据框数据框(dataframe)是一个由行和列组成的二维结构,其中行表示观测(observation)或记录(record),列表示变量(variable)或指标(indicator) 。数据框与Excel、SAS和SPSS中的数据集类似 。数据框看起来与矩阵很相似,而且矩阵的很多操作也适用于数据框,如子集的选择 。与矩阵不同的是,数据框里不同的列可以是不同模式(数值型、字符型等)的数据 。数据框可以通过函数data.frame( )创建 。例如,下面的代码创建了一个包含5个观测对象、4个变量的数据框:
> ID <- 1:5> sex <- c("male", "female", "male", "female", "male")> age <- c(25, 34, 38, 28, 52)> pain <- c(1, 3, 2, 2, 3)> pain.f <- factor(pain,+levels = 1:3,+labels = c("mild", "medium", "severe"))> patients <- data.frame(ID, sex, age, pain.f)> patientsIDsexagepain.f11male25mild22 female34severe33male38medium44 female28medium55male52severe
数据框本质上也是一种列表,要显示或使用数据框的某一变量(列),可以使用“$”符号加上变量名 。例如:
> patients$age[1] 25 34 38 28 52> mean(patients$age)[1] 35.4
大部分结构化的医学数据集均以数据框的形式呈现,因此,数据框是本书中最常处理的数据结构 。关于数据框的操作将在第3章中详细讨论 。
2.1.7 数据类型的转换在进行数据分析时,分析者需要对数据的类型熟稔于心,因为数据分析方法的选择与数据的类型是有密切联系的 。R提供了一系列用于判断某个对象的数据类型的函数,还提供了将某种数据类型转换为另一种数据类型的函数 。这些函数都存在于基本包base里,表2-2列出了其中的一部分常用函数 。
表2-2 数据类型的判断与转换函数
文章插图
以“is.”开头的函数的返回值为TRUE或FALSE,而以“as.”开头的函数将对象转换为相应的类型 。例如:
> x <- c(2, 5, 8)> is.numeric(x)[1] TRUE> is.vector(x)[1] TRUE> y <- as.character(x)> y[1] "2" "5" "8"> is.numeric(y)[1] FALSE> is.character(y)[1] TRUE> z <- c(TRUE, FALSE, TRUE, FALSE)> is.logical(z)[1] TRUE> as.numeric(z)[1] 1 0 1 0
本文摘自《 R语言医学数据分析实战》推荐阅读
- 你知道黑客最喜欢使用的编程语言吗
- 红茶系列包括哪些茶,红茶介绍红茶的种类与泡法红茶的功效与作用
- 汇编语言的使用领域
- mysql慢查询语句分析总结
- 莎士比亚经典语录有什么
- 莎士比亚四大喜剧包括什么
- 画蛇添足的成语故事缩写 画蛇添足是历史成语吗
- 学平险都保什么?
- 擂茶的分类有哪些,擂茶的风情物语介绍
- 河姆渡茶文化遗存,茶文化体系茶文化体系包括茶史学