- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
R程序Lecture4 因子、列表、数据框、及输入输出
因子(factor)和有序因子 统计中的变量重要类别: 区间变量和名义变量、有序变量。 区间变量取连续的数值,可以进行求和、平均等运算。 名义变量和有序变量取离散值,既可用数值代表也可用字符型值,其具体数值没有数量意义,不能用于加减乘除计算而只能用来分类或者计数。名义变量比如性别、省份、职业,有序变量比如班级名次、质量等级。 因为离散变量有各种不同表示方法,在S中为统一起见使用因子(factor)来表示这种分类变量。还提供了有序因子(ordered 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()的结果是一个带元素名的向量,元素名为因子水平,元素值为该水平的出现频数。 S的结果除了可以显示外,本身都是S对象(如这里的向量结果),可以很方便地进一步处理。 可以用两个或多个因子进行交叉分类。比如,性别(sex)和职业(job)交叉分组可以用table(sex, job)来统计每一交叉类的频数,结果为一个矩阵,矩阵带有行名和列名,分别为两个因子的各水平名。 因子可以用来作为另外的同长度变量的分类变量。比如,假设上面的sex是5个学生的性别,而 h - c(165, 170, 168, 172, 159) 是这5个学生的身高,则 tapply(h, sex, mean) 可以求按性别分类的身高平均值。 这样用一个等长的因子向量对一个数值向量分组的办法叫做不规则数组(ragged array)。后面我们还可以看到更多的因子的应用。 列表(list)定义 列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型。元素本身允许是其它复杂数据类型,比如,列表的一个元素也允许是列表。 列表元素用“列表名[[下标]]”的格式引用。 但是,列表不同于向量,我们每次只能引用一个元素,如rec[[1:2]]的用法是不允许的。 注意:“列表名[下标]”或“列表名[下标范围]”的用法也是合法的,但其意义与用两重括号的记法完全不同,两重记号取出列表的一个元素,结果与该元素类型相同,如果使用一重括号,则结果是列表的一个子列表(结果类型仍为列表)。 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”。 这种写法方便了交互运行,编写程序时一般不用简写,以免降低程序的可读性。 使用元素名的引用方法可以让我们不必记住某一个下标代表那一个元素,而直接用易记的元素名来
您可能关注的文档
- Romantic法兰西.ppt
- Rop 简介.ppt
- roseonly策划书最终版.doc
- RSLogix 5&500 软件介绍.ppt
- RSLogix Emulator 5000 手册.doc
- RSLogix_5000_仿真软件使用方法.doc
- RSTP,讲述RSTP相较于STP的新增元素,如端口状态、端口角色、协商过程.ppt
- RT-qPCR(实时荧光定量PCR).ppt
- RUP统一软件过程.ppt
- R语言 barplot基本教程.docx
- 离婚协议书专业翻译与法律效力确认及执行服务合同.docx
- 离婚协议书中的知识产权许可与商业秘密保护协议.docx
- 离婚协议书范本:财产分配、子女抚养及探望权规定.docx
- 离婚协议中股权分割及共同债务处理细则范本.docx
- 离婚协议书起草与执行监督服务合同.docx
- 揭秘核力发电安全-从理论到实践的全面解读.pptx
- 部编版一年级上册道德与法治第二单元《校园生活真快乐》测试卷带解析答案.docx
- 部编版六年级下册道德与法治期末达标卷及解析答案.docx
- 部编版一年级上册道德与法治第二单元《校园生活真快乐》测试卷及答案参考.docx
- 部编版六年级下册道德与法治第一单元完善自我 健康成长测试卷(基础题).docx
文档评论(0)