R-4_子、列表、数据框及输入输出.pptVIP

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
R-4_子、列表、数据框及输入输出

第四讲 R的数据结构(二) 因子、列表、数据框;因子(factor)和有序因子 ;因子是一种特殊的字符型向量,其中每一个元素取一组离散值中的一个,而因子对象有一个特殊属性levels表示这组离散值(用字符串表示)。例如: x - c(男, 女, 男, 男, 女) y - factor(x) y [1] 男 女 男 男 女 Levels: 男 女;可以自行指定各离散取值水平(levels),不指定时由x的不同值来求得。 labels可以用来指定各水平的标签,不指定时用各离散取值的对应字符串。 exclude参数用来指定要转换为缺失值(NA)的元素值集合。如果指定了levels,则因子的第i个元素当它等于水平中第j个时元素值取“j”,如果它的值没有出现在levels中则对应因子元素值取NA。 ordered取真值时表示因子水平是有次序的(按编码次序)。 可以用is.factor()检验对象是否因子,用as.factor()把一个向量转换成一个因子。; x - c(1,0,1,1,0) y - factor(x,levels=sort(unique(x),decreasing=T), labels=c(男, 女),exclude=NA,order=F) y [1] 男 女 男 男 女 Levels: 男 女 ;因子的基本统计是频数统计,用函数table()来计数。 例如, sex - factor(c(男, 女, 男, 男, 女)) res.tab - table(sex) res.tab 男 女 3 2 表示男性3人,女性2人。table()的结果是一个带元素名的向 量,元素名为因子水平,元素值为该水平出现的频数。 R的结果除了可以显示外,本身都是R对象(如这里的向量结果),可以很方便地进一步处理。 可以用两个或多个因子进行交叉分类。比如,性别(sex)和职业(job)交叉分组可以用table(sex, job)来统计每一交叉类的频数,结果为一个矩阵,矩阵带有行名和列名,分别为两个因子的各水平名。;因子可以用来作为另外的同长度变量的分类变量。比如,假设上面的sex是5个学生的性别,而 h - c(165, 170, 168, 172, 159) 是这5个学生的身高,则 table(h, sex) sex h 男 女 159 0 1 165 1 0 168 1 0 170 0 1 172 1 0 tapply(h, sex, mean) #可以求按性别分类的身高平均值。 男 女 168.3333 164.5000 ;列表(list)定义; rec = list(name=李明, age=30, scores=c(85, 76, 90)) rec $name [1] 李明 $age [1] 30 $scores [1] 85 76 90 ;在定义列表时如果指定了元素的名字(如rec中的name,age,scores),则引用列表元素还可以用它的名字作为下标,格式为“列表名[[元素名]]”,如: rec[[age]] [1] 30 另一种格式是“列表名$元素名”,如: rec$age [1] 30 其中“元素名”可以简写到与其它元素名能够区分的最短程度,比如“rec$s”可以代表 “rec$score”。 这种写法方便了交互运行,编写程序时一般不用简写,以免降低了程序的可读性。;使用元素名的引用方法可以让我们不必记住某一个下标代表那一个元素,而直接用易记的元素名来引用元素。事实上,已知向量和矩阵都可以指定元素名、行名、列名。 定义列表使用list()函数,每一个自变量变成列表的一个元素,自变量可以用“名字=值”的方式给出,即给出列表元素名。 自变量的值被复制到列表元素中,自变量如果是变量并不会与该列表元素建立关系(改变该列表元素不会改变自变量的值)。(例见后);修改列表 ; rec$sex - 男 rec[[6]] - 161 rec ;第五号元素因为没有定义所以其值是“NULL”,这是空对象的记号。 如果rec是一个向量,则其空元素为“NA”,这是缺失值的记号。从这里我们也可以体会“NULL”与“NA”的区别。 几个列表可以用连接函数c()连接起来,结果仍为一个列表,其元素为各自变量的列表元素。如: list.ABC - c(list.A, list.B, list.C) (注意

文档评论(0)

md85173 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档