您的位置:首页 > 其它

R语言学习笔记2——数据集

2014-01-29 22:25 176 查看
R语言学习笔记2--数据集篇

参考资料:R语言实战

数据集即dataset,就是我们通常说的数据表,有行列信息。

矩阵

矩阵是二维数组,可以通过函数matrix创建矩阵。实例如下:

其它的参数看名字就能明白是什么意思,着重说一下byrow这个参数,如果是true说明矩阵的值是按列排的,就是说先填完第一列再填第二列。如果false就是按照行排列。

矩阵的下标和c语言的数组下标差不多。不赘述

数组

数组和矩阵类似,维度可以大于2。可以理解成c语言里的多维数组。数组myarray<-array(vector, dimensions, dimnames), dimensions 表示维度,比如一个2*2*3的数组,那么dimensions就是c(2,2,3)。下面例子显示了如何创建多维的数组。

> dim<-c("a1","a2") //这行命名了数组第一维度的名字
> z<-array(1:16,c(2,2,3),dimnames=list(dim))  //创建数组的命令
> z
, , 1

[,1] [,2]
a1    1    3
a2    2    4

, , 2

[,1] [,2]
a1    5    7
a2    6    8

, , 3

[,1] [,2]
a1    9   11
a2   10   12


数组的选取和其它都一样,比如z[1,1,3]就是9:

> z[1,1,3]
a1
9

数据框

数据框就是sas,spss等里面的数据集,sas里一个数据集就是一张表。因此数据框将会是以后最常见的数据类型。

数据框的创建函数:data.frame(col1,col2,col3……)

如果要创建一个表的话,可以从单列创建,最后组合成数据框。例如我们上一期的例题图表就可以这么创建:

> SSN<-c(123874414,646239182,012437652,018451357) //这里创建了社保号这一列
> ASalary<-c(28000,29500,35100,26500)     //创建年收入列
> age<-c(35,37,40,31)						//创建年龄列
> race<-c("w","b","w","w")					//种族列
)
> residentTable<-data.frame(SSN,ASalary,age,race)		//创建residentTable数据框

> residentTable
SSN ASalary age race                  //打印出residentTable表
1 123874414   28000  35    w
2 646239182   29500  37    b
3  12437652   35100  40    w
4  18451357   26500  31    w


这里会引入一个新符号$,这个符号可以取出数据框中的某一列。比如我们要取出age,就输入:

residentTable$age


果要对某一列进行排序的话,需要使用order函数。还是回到第一节的例题,通过刚才的步骤我们已经把residentTable这个数据框给建立起来了。根据题目要求,需要按照社会保险号的顺序重新排列收入。具体实现代码如下:

> o<-order(SSN) //order函数会按照升序重排变量顺序,并写入到向量o里面
> o
[1] 3 4 1 2 //这里可见order函数的返回值其实是一列顺序向量
> rbind(SSN[o],ASalary[o])   //接下来rbind社保号和年收入,重排序后的对照表就出来了。
[,1]     [,2]      [,3]      [,4]
[1,] 12437652 18451357 123874414 646239182
[2,]    35100    26500     28000     29500

如果觉得行列名不美观,可以通过data.fram来定义行列名

new<-data.frame(rbind(SSN[o],ASalary[o]))
> new
X1       X2        X3        X4
1 12437652 18451357 123874414 646239182
2    35100    26500     28000     29500


例题:

一个大公司想了解哪些人购买了其产品,ceo希望得到“典型购房者”的情况。于是收集了购买者的如下信息:年龄,种族,收入,婚姻状况,以及是有房还是租房。请编写一个程序得到典型购房者的概况。(需要自己编写数据)

例题的解答过程会放在下一个部分。祝大家新春快乐。

参考教材

R in action 下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: