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