**
系统自学R的第三天#参考书籍《R语言编程艺术》
**
- R语言中一些重要的数据结构
向量
向量是R语言的核心。
向量的元素必须属于某种“模式”,或者是数据类型。一个向量可以有三个字符串-组成(字符模式),或者由三个整数元素组成,但不可以由一个整数元素和两个字符串元素组成。
标量,或者单个的数,其实在R中并不存在。单个的数实际上是一元向量。
字符串
字符串实际上是字符结构(而不是数值模式)的单元素向量。
字符串连接,例子:
>u<-paste("abc","de","f") ##concatenate the strings
> u
[1] “abc de f”
> v<-strsplit(u," ")##split the string according to blanks
> v
[[1]]
[1] “abc” “de” “f”
刚刚不小心没有空格,代码:
> v<-strsplit(u,"")##split the string according to blanks
> v
[[1]]
[1] “a” “b” “c” " " “d” “e” " " “f”
就是一个一个被分开了,但是应该没啥实际意义吧,,,
矩阵
R中矩阵的概念与数学一样:矩形的数值数组。从技术层面说,矩阵是向量,不过矩阵还有两个附加的属性:行数和列数。下面是一个例子:
> m<-rbind(c(1,4),c(2,2))
> m
>m [,1]
>m[,2]
[1,] 1 4
[2,] 2 2
此处要注意不要把c的小写弄成大写,否则会出现以下错误提示:
Error in C(2, 2) : 不能把对象解释成因子
使用函数rbind()[rbind是row bind的缩写,意思是按行绑定]把两个向量结合成一个矩阵,这两个向量是矩阵的行,并把矩阵保存在m中。。注意:另一个函数cbind()把若干列结合成矩阵。例如:
> m<-cbind(c(1,4),c(2,2))
> m
[,1] [,2]
[1,] 1 2
[2,] 4 2
R语言的一个非常有用的特性是,可以从矩阵中提取出子矩阵,这与向量中提取子向量非常相似,以下是一个例子:
> m[1,] ##row 1
[1] 1 2
> m[,2]##column2
[1] 2 2
列表
和R语言的向量类似,R语言中的列表也是值得容器,不过其内容中测各项可以属于不同的数据类型(此处就与向量是不同的)。
可以通过两部分组成的名称来访问列表的元素,其中用到了美元符号$。以下就是一个例子:
> x<-list(u=2,v="abc")
> x
$u
[1] 2
$v
[1] “abc”
> x$u
[1] 2
列表中x$u值得是列表中的组件u
列表的一种常见用法是吧多个值打包组合到一起,然后从函数中返回。这对函数统计十分有用。
有一个很长的例子,但是没有数据吗,就先截图摆起来。
![hist
![str()函数
数据框
一个典型的数据集包含多种不同类型的数据。
![数据框和矩阵
原来如此,矩阵还是比较局限一些哈。。
怪不得原来一直出错呢
下面是一个创建数据框的例子:
> d<-data.frame(list(kids=c("jack","jill"),ages=c(12,10)))
> d
kids ages
1 jack 12
2 jill 10
> d$ages
[1] 12 10
不过呢数据框都是通过读取文件或者数据库来创建的。
类
R语言是一门面向对象的编程语言。对象是类的实例。类是很抽象的。