r软件及统计分析因子列表数据框及输入输出(编辑修改稿)内容摘要:

会被强制转换为因子 ,而矩阵、列表、数据框这样的成员为新数据框提供了和其列数、成员数、变量数相同个数的变量。 作为数据框变量的向量、因子或矩阵必须具有相同的长度(行数)。 • 尽管如此,我们一般还是可以把数据框看作是一种推广了的矩阵,它可以用矩阵形式显示,可以用对矩阵的下标引用方法来引用其元素或子集。 数据框生成 • 数据框可以用 ()函数生成,其用法与 list()函数相同,各自变量变成数据框的成分,自变量可以命名,成为变量名。 例如: • d=(name=c(赵 , 钱 , 孙 , 李 , 王 ),age=c(20,21,22,21,20),height= c(170,171,175,165,181),gender=c(男 , 女 , 男 , 女 , 男 )) • d 如果一个列表的各个成分满足数据框成分的要求,它可以用()函数强制转换为数据框。 比如,上面的 d如果先用 list()函数定义成了一个列表,就可以强制成为一个数据框。 • 一个矩阵可以用 ()转换为一个数据框,如果它原来有列名则其列名被作为数据框的变量名,否则系统自动为矩阵的各列起一个变量名(如 X1, X2)。 • d name age height gender 1 赵 20 170 男 2 钱 21 171 女 3 孙 22 175 男 4 李 21 165 女 5 王 20 181 男 • d[1] name 1 赵 2 钱 3 孙 4 李 5 王 • d[[1]] [1] 赵 钱 孙 李 王 Levels: 李 钱 孙 王 赵 • d[[2]][2:3] [1] 21 22 数据框引用 • 引用数据框元素的方法与引用矩阵元素的方法相同,可以使用下标或下标向量,也可以使用名字或名字向量。 如 d[1:2, 2:3]。 数据框的各变量也可以用按列表引用(即用双括号 [[]] 或 $符号引用)。 • 数据框的变量名由属性 names定义,此属性一定是非空的。 数据框的各行也可以定义名字,可以用 rownames属性定义。 如: • names(d) [1] name age height gender • rownames(d) • [1] 1 2 3 4 5 • table(d[4]) 男 女 3 2 • table(d[[4]]) 男 女 • 3 2 • tapply(d[[3]],d[[4]], mean) • 男 女 • • tapply(d[3],d[4], mean) • 错误在 tapply(d[3], d[4], mean) : 变元的长度必需相同 • d[[3]]/d[[2]] • [1] attach()函数 • 数据框的主要用途是保存统计建模需要的数据。 S的统计建模功能都需要以数据框为输入数据。 我们也可以把数据框当成一种矩阵来处理。 • 在使用数据框的变量时可以用“数据框名 $变量名”的记法。 但是,这样使用较麻烦, S提供了 attach()函数可以把数据框“连接”入当前的名字空间。 例如, attach(d) r height / age • 后一语句将在当前工作空间建立一个新变量 r,它不会自动进入数据框 d,要把新变量赋值到数据框中,可以用 d$r height / age这样的格式。 • 为了取消连接,只要调用 detach()(无参数即可)。 • 注意: S和 R中名字空间的管理是比较独特的。 它在运行时保持一个变量搜索路径表,在读取某个变量时到这个变量搜索路径表中由前向后查找,找到最前的一个;在赋值时总是在位置1赋值(除非特别指定在其它位置赋值)。 • attach()的缺省位置是在变量搜索路径表的位置2 , detach()缺省也是去掉位置 2。 • 所以, S编程的一个常见问题是当你误用了一个自己并没有赋值的变量时有可能不出错,因为这个变量已在搜索路径中某个位置有定义,这样不利于程序的调试,需要留心。 • attach()既可以连接数据框, 也可以连接列表。 输入输出 • 输出 在 S交互运行时要显示某一个对象的值只要键入其名字即可 • 这实际上是调用了 print()函数,即 print(x)。 在非交互运行(程序)中应使用 print()来输出。 print()函数可以带一个 digits=参数指定每个数输出的有效数字位数 ,可以带一个 quote= 参数指定字符串输出时是否带两边的撇号,可以带一个 =参数指定矩阵或数组输出时列之间的间距。 • print()函数是一个通用函数,即它对不同的自变量有不同的反应。 对各种特殊对象如数组、模型结果等都可以规定 print的输出格式。 • cat()函数也用来输出,但它可以把多个参数连接起来再输出(具有 paste()的功能)。 例如: cat(i = , i, \n) • 注意使用 cat()时要自己加上换行符“ \n”。 它把各项转换成字符串,中间隔以 空格 连接起来,然后显示。 • 如果要使用自定义的分隔符,可以用 sep=参数,例如: cat(c(AB, C), c(E, F), \n, sep=) ABCEF • cat()还可以指定一个参数 file=给一个文件名,可以把结果写到指定的文件中,如: cat(i = , 1, \n, file=c:/work/) 非常适用于中间或最后结果的存储。 • 如果指定的文件已经存在则原来内容被覆盖。 加上一个 append=TRUE参数可以不覆盖原文件而是在文件末尾附加,这很适用于运行中的结果记录。 • cat()函数和 print()都不具有很强的自定义格式功能,为此可以使用 cat()与 format() 函数配合实现。 f。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。