数据结构
数据集
通常是由数据构成的一个矩形数组,行表示观测,列表示变量。R中有许多存储数据的结构,包括标量、向量、数组、数据框和列表,多样化的列表赋予R极其灵活的数据处理能力。
向量
- 向量是用于存储数值型、字符型或逻辑型数据的一维数组。a为数值型向量,b为字符型向量,c为逻辑型向量,单个向量中的数据必须拥有相同的类型和模式。
> a <- c(1,2,5,3,6,-2,4)
> b <- c("one","two","three")
> c <- c(TRUE,TRUE,TRUE,FALSE,TRUE,FALSE)
- 通过在方括号中给定元素所处位置的数值,我们可以提取向量中的元素
> a <- c("k","g","h","a","c","m")
> a[3] 第三个元素
[1] "h"
> a [c(1,3,5)]
[1] "k" "h" "c" 第1,3,5个元素
> a[2:6]
[1] "g" "h" "a" "c" "m" 第2~6个元素
> a [-3]
[1] "k" "g" "a" "c" "m" 除了第3个元素
也可通过值的大小提取元素
> a <- c(1,2,5,3,6,-2,4)
> a[a<2]
[1] 1 -2
> a[a==2]
[1] 2
> a[a %in% c(1,2,5,3,6,-2,4)]
[1] 1 2 5 3 6 -2 4
数据框
- 不同的列包含不同的模式(数值型、字符型等)的数据。数据框可通过
data.frame?()
创建
> patientID <- c(1,2,3,4)
> age <- c(25,34,28,52)
> diabates <- c("Type1","Type2","Type1","Type1")
> status <- c("poor","Improve","Excellent","poor")
> patientdata <- data.frame(patientID,age,diabates,status)
> patientdata <- data.frame(patientID, age, diabates, status)
> patientdata
patientID age diabates status
1 1 25 Type1 poor
2 2 34 Type2 Improve
3 3 28 Type1 Excellent
4 4 52 Type1 poor
- 选取数据框中的元素
数据导入
- 使用
read.table()
从文本文件中导入数据。此函数可读入一个表格格式的文件并将其保存为一个数据框。 - 逗号分隔文件(.csv文件)、制表符分隔文件(.tsv文件)和空格分隔文件(.txt文件)
- 读取本地数据,
read.table(file="huahua.txt",sep = "\t",header = T)
- 函数选项
-
header
表示文件是否第一行包含了变量名的逻辑型变量 -
sep
分开数据值的的分隔符 -
row.names
用于指定一个或多个行标记符的可选参数 -
col.names
如果数据文件的第一行不包括变量名,可以用col.names去指定一个包含变量名的字符向量。 -
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)
,修改第一列为行名 -
write.table(X,file = "yu.txt",sep = ",",quote=F)
数据导出 -
save.image(file="bioinfoplanet.RData")
保存当前所有变量 -
save(X,file="test.RData")
保存其中一个变量 -
load("test.RData")
再次使用RData时的加载命令```
-
- 把文本文件存放在工作目录下不然会报错
提取元素
-
[x,y]
第x行第y列
-
[x,]
第x行 -
[,y]
第y列 -
x[y]
也是第y列 -
[a:b]
第a列到第b列 -
[c(a,b)]
第a列和第b列
save(X,file="test.RData")这句代码如果报错object X not found,是为什么,应该怎么解决?
- 第一种可能是不存在,第二种保存时可能输入法不对,大小写或者中文输入法,改写大小写。
网友评论