0. 数据类型,主要有以下几个类型
logical, integer, double, complex, character, or raw.
可以根据as.nameOfType()和is.nameOfType来进行转化和真值判断。
1. 数据结构
1.1 向量(Vectors)
class(vector)的结果为相对应的数据类型
1.1.1 使用c()构造向量
p <- c(2,3,5,7)
1.1.2 当向量索引增加时,向量自动增加。
for(i in 1:length(p)){ p[i] <- i }
1.1.3 使用seq()构造向量
se<-seq(1,10,1)
1.2 数组(Arrays)
class(array)的结果为“array”
1.2.1 使用array(vector, num=length(vector), dimname)构造数组
arr<-array(vec,5,"test")
1.3 列表(lists)
是general form的一种向量,但是可以包含不同的数据类型。这里list比较像C中的struct数据结构。
class(list)的结果为“list”
1.3.1 使用list()构造列表
a <- list(name="Joe", 4, foo=c(3,8,9))
1.3.2 使用a[[num]]来提取列表中某一栏数据
a[[1]]等价于a$name
如果超出list的长度,则会显示错误。 如:a[[4]]
1.4 矩阵(matrices)
在R语言中,没有固定的矩阵数据类型,他是通过对多个向量的组合形成的。
class(matrix)的结果为“matrix”
1.4.1 使用array()构造矩阵
通过array()构造的矩阵可以增加矩阵的维度。
m1 <- array( c(1,2,3,4,5,6), dim=c(2,3) ) m2 <- array(data=c(firstMatrix,secondMatrix),dim=c(rownumber,columnnumber,2))
1.4.2 使用matrix()构造矩阵
y <- matrix(c(1:9), nrow = 3, ncol = 3)
1.4.3 使用cbind()和rbind构造矩阵
PE <- c(0,0,0,0,1,0,0) EE <- c(0,0,0,0,1,0,0) SN <- c(0,0,0,0,1,0,0) FC <- c(0,0,0,0,0,1,1) BI <- c(0,0,0,0,0,1,1) UF <- c(0,0,0,0,0,0,0) TU <- c(0,0,0,0,0,0,0) utaut.inner <- cbind(PE,EE,SN,FC,BI,UF,TU)
1.5 数据框(data.frame)
从其他语言中理解来说,就是数据库中的表(table),Excel中的表(sheet)。表中的列就是字段,变量;表中的行就是记录,样本。
class(utaut)的结果为“data.frame”
1.5.1 使用read.table()构造数据框
在之前的博客中已经介绍过一些方法,如read.csv()等
http://penergy.iteye.com/blog/2042719
1.5.2 使用data.frame()构造数据框
x <- 1:4; n <- 10; M <- c(10, 35); y <- 2:4 frame1<-data.frame(x, n) xtest<-frame1$x //返回向量(vectors)数据结构
1.6 因子(factor)
为处理分类数据提供的一种有效方法
//假定我们有一份来自澳大利亚所有州和行政区的信息样本 以及他们各自所在地的州名。 state <- c("tas", "sa", "qld", "nsw", "nsw", "nt") //创建因子factor: statef <- factor(state) statef [1] tas sa qld nsw nsw nt Levels: nsw nt qld sa tas
2. 总结
这一篇主要是讲述基本数据结构和数据类型。在下一期会讲解如何使用这些数据结构,比如矩阵运算,向量运算等。
参考:
http://blog.fens.me/rhadoop-r-basic/