【R语言】R的数据格式
R的数据格式
数据格式,或者说数据结构,简单地说,就是软件用来识别数据的一种方式。
最基本的有5种,有向量、矩阵、数组、数据框和列表。其实归结起来,就是一种:向量。
可以使用c()函数来创建向量。
c1<- c(1,3,5,7,11)
创建了一个命名为c1 的向量
c1<- c(1,3,5,7,11)
c2 <- c("feng","huo","shui","yun")
c3 <- c(TRUE,F,FALSE,T)
用类型函数来看一下,typeof
,翻译就是...的类型,所以用它来看变量类型,class
也行的
数值型、字符型和逻辑型
向量是用于存储数值型、字符型或逻辑型数据的一种一维数组。
向量除了大小,还要有位置,如c2[1]
矩阵就是所说的matrix,所以我们就还是用matrix函数来创建一个矩阵。
c4 <- matrix(1:40, 5, 8)
#1:40是1-40,矩阵有行列,所以5就是行,8就是列
c4 <- matrix(1:40, nrow = 5,ncol = 8)
加上行名和列名,rownames
或者colnames
或者**dimnames
**
#行名
c5 <- c("feng1","feng2","feng3","feng4","feng5")
#列名
c6 <- c("feng6","feng7","feng8","feng9","feng10","feng11","feng12","feng13")
c7 <- matrix(1:40, nrow = 5,ncol = 8, dimnames = list(c5,c6))
dimnames就是数据的维名,dimnames=list(行名,列名),所以你们在看到网上一些代码在处理TCGA的时候,经常会先去除行名和列名,转换矩阵,最后再dimnames补上(TCGA读取进来后,行名列名是字符,表达量是数值,所以需要先去除行列后再对表达量进行操作,操作完了再dimnames合起来)。
生信分析最常见的一种格式,data.frame,数据框,比如临床数据,年龄是数值型,分期是字符型,这样的数据用matrix显然不合适,那就只能用data.frame,所以给数据框一个定义:一种能够存储多种类型数据的二维矩阵。
patientID <- c(LETTERS[1:4])
age <- c(20:23)
stage <- c("stageI","stageII","stageIII","stageIV")
T <- c("T1","T2","T3","T4")
先创建四个对象,刚才矩阵用的是matrix,这里数据框就还是用data.frame
c8 <- data.frame(patientID,age,stage,T)
c8
#加上行名
rownames(c8) <- patientID
#这样行名是病人ID,多了一列也要去掉
c8 <- c8[-1]
list非常复杂,比如看过三维的PCA图,三维甚至更多维度,就是用list来创建
name <- "feng9"
c9 <- list(title = name,data = c1, c4, c7)
c9
list就是对象的有序集合。这个对象可以是除了list之外的所有数据类型,可以是向量、矩阵、数据框。