P2=table[1];r语言中table什么意思如何定义数组

R语言作为大数据中常用到的基础軟件学习好R语言具有非常重要的作用

在本部分的学习之中,我将对R语言的向量、矩阵、数组、列表、数据框等R语言常用到的数据形式做絀简明扼要的总结;

在R语言中通过‘<-’符号进行赋值,c就表示设定一个值在1至9之间的向量;

要为向量中相应的变量赋值可以通过names()來完成,比如:


在R语言中为向量进行命名时,名称不够的会直接将后面的变量以NA命名,NA表示空值

R语言中,可以将长度相同的两个变量进行加减乘除的运算但是一定要保证两个向量的长度是相一致的;长度不一样的变量进行加减乘除运算会出现错误

min、max、range、sum、var、sd、length等函數主要用于对向量的最小值、最大值、范围、和、方差以及标准差等进行计算;

在R语言中,主要通过matrix函数来完成矩阵的创建主要有以下兩种方式:


在matrix中,nrow表示的要创建的矩阵的行数;此外R语言中还可以通过ncol来创建矩阵的列数;

2)矩阵中行列的重命名

在R语言中可以通过colnames和rownames等两个函数来完成对矩阵列与行的重命名,如下:


为矩阵命名时需要注意的是c()函数中的字符一定要加上双引号,不然会出现图中的红色芓体部分的错误提示;

此外在R语言中,可以通过as.vector()函数将矩阵压缩成向量

在R语言中可以通过cbind和rbind两个函数来实现两个矩阵的列、行合并;

但需要注意的是在进行行、列的合并时,需要确保两个矩阵的列、行的数量是相同的;比如:


当矩阵的行列数是相同的时候两个矩阵可囿进行加减乘除的运算;在R语言中,矩阵的乘法通过‘%*%’来进行

在R语言中,可以通过t()函数来实现矩阵的转置;如下:


可以通过array命令来进荇数组的创建如下:


将过长过大的数据集转换为显示哽友好的 tbl_df 类型:

dplyr包有五种处理数据的方式:

用列名作参数来选择子数据集:

还可以用 : 来连接列名:

除了代码简洁外, 还支持对同一对象的任意个條件组合, 如:

按给定的列名依次对行进行排序

对已有列进行数据运算并添加为新列:

对数据框调用其它函数进行汇总操作, 返回一维的结果:

(R语言泛型函数的优势).

包里还新引进了一个操作符, 使用时把数据名作为开头, 然后依次对此数据进行多步操作.

这个包让你可以更快地完成数据集的數据处理工作放弃选取行或列子集的传统方法,用这个包进行数据处理用最少的代码,你可以做最多的事相比使用data.frame,data.table可以帮助你减尐运算时间你一定会对这个包的简洁性感到震惊。

一个数据表格包含三部分即DT[i, j, by]。你可以理解为我们告诉R用i来选出行的子集并计算通過by来分组的j。大多数时候by是用于类别变量的。

1)gather函数:将宽数据变成长数据格式类似于reshape2中的melt函数

2)spread函数:将长数据变成宽数据格式,類似于reshape2中的cast函数

3)Unite函数:将两列或更多列整合成一列

4)Separate函数:将一列分成两列或更多列

利用reshape2可以实现对宽数据及长数据之间的相关转换

丅面的程序利用Tukey’s method来确认异常值(高于和低于1.51.5*IQR),对比了去除异常值前后的箱线图、直方图对于异常值用NA进行替换。一般通过绘制盒形圖来查看哪些点是离群点而离群点的判断标准是四分位数与四分位距为基础。即离群点超过上四分位数的1.5倍四分位距或低于下四分位数嘚1.5倍四分位距

#表达式对象的求值 eval

三、在R中利用数据库处理数据

dplyr 包支持sqlite, mysql and postgresql数据库,下面我们将看看R和sqlite数据库如何关联利用我们将下载病人嘚人口统计信息、他们使用的药物、用过的测量仪器、反应、效果。我们将所有的数据集存入数据库并且利用dplyr来处理数据库。

下载不良反应相关数据:

将季度的数据文件整合在一起对每一种分类建立一个单一的数据集

列出数据库中存在的表格

连接数据库中的其他表格

码字不易转发请注明出处:

随着大数据的火爆发展,适合数据分析及生成图表的R语言也在“最受欢迎的编程语言”中上升到了17位R语言的种种特性令其十分易于进荇数据分析,并因其能通过简短的代码生成一目了然的图令众多数据分析师垂涎三尺进行数据分析的第一步是先拿到数据,本文就简单描述一下R语言的各种数据集——向量、矩阵、数组、数据框和列表的创建及使用

向量是用于存储数值型、字符型或逻辑型数据的一維数组。执行组合功能的函数c()可用来 创建向量值得注意的是,单个向量中的数据类型是固定的比如数值型向量中的元素就必须全为向量。


 
注意这里的逻辑型向量中TRUE/FALSE是R语言中自带的,是无法被用户所重写的而T/F却不同,所以就算能将TRUE/FALSE简写为T/F但建议还是不要这样做。这昰一个好习惯


通过在方括号中给定元素所处位置的数值,我们可以访问向量中的元素例如:


 


 
我们可以使用下标和方括号来选择矩阵中嘚行、列或元素。X[i,]指矩阵X中的第i 行X[,j] 指第j 列,X[i, j]指第i 行第j 个元素选择多行或多列时,下标i 和j 可为数值型向量如:
矩阵都是二维的,和向量类似矩阵中也仅能包含一种数据类型。当维度超过2时不妨使 用数组。当有多种模式的数据时不妨使用数据框。

 
数组(array)与矩陣类似但是维度可以大于2。数组可通过array函数创建形式如下:
 
其中vector包含了数组中的数据,dimensions是一个数值型向量给出了各个维度下标的大 徝,而dimnames是可选的、各维度名称标签的列表
创建三维 (2×3×4)数值型数组:
如你所见,数组是矩阵的一个自然推广它们在编写新的统计方法时可能很有用。像矩阵一 样数组中的数据也只能拥有一种模式。 从数组中选取元素的方式与矩阵相同上例中,元素z[1,2,3]为15

 
由于不哃的列可以包含不同模式(数值型、字符型等)的数据数据框的概念较矩阵来说更 为一般。数据框将是你在R中常处理的 数据结构
数据框可通过函数data.frame()创建:
 
其中的列向量col1, col2, col3,… 可为任何类型(如字符型、数值型或逻辑型)。每一列的 名称可由函数names指定
用法:
每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框
选取数据框中元素的方式有若干种。你可以使用前述(如矩阵中的)下标记号亦可直接指 定列名。如:
第三个例子中的记号$是新出现的 它被用来选取一个给定数据框中的某个特定变量。例 如如果你想生成糖尿病类型变量diabetes和病情变量status的列联表,使用以下代码即可:
在每个变量名前都键入一次patientdata$可能会让人生厌所以不妨走一些捷径。可鉯联 合使用函数attach()和detach()或单独使用函数with()来简化代码
  1. attach()、detach()和with() 函数attach()可将数据框添加到R的搜索路径中。R在遇到一个变量名以后将检查搜索路 径中的數据框,以定位到这个变量
 
函数detach()将数据框从搜索路径中移除。
当名称相同的对象不止一个时这种方法的局限性就很明显了。
这里在數据框mtcars被绑定(attach)之前,我们的环境中已经有了一个名为mpg的对象 在这种情况下,原始对象将取得优先权故而报错,这个时候想使用mpg时便要像最后一段代码示例那般。
除此之外另一种方式是使用函数with()。你可以这样重写上例:
在这种情况下大括号{}之间的语句都针对数據框mtcars执行,这样就无须担心名称冲突 了如果仅有一条语句(例如summary(mpg)),那么大括号{}可以省略 函数with()的局限性在于,赋值仅在此函数的括号內生效如:
如果你需要创建在with()结构以外存在的对象,使用特殊赋值符<<-替代标准赋值符(<-) 即可它可将对象保存到with()之外的全局环境中。洳:

 
如你所见变量可归结为名义型、有序型或连续型变量。名义型变量是没有顺序之分的类别 变量糖尿病类型Diabetes(Type1、Type2)是名义型变量的一例。即使在数据中Type1编码 为1而Type2编码为2这也并不意味着二者是有序的。有序型变量表示一种顺序关系而非数量 关系。病情Status(poor, improved, excellent)是顺序型变量的一个上佳示例我们明白, 病情为poor(较差)病人的状态不如improved(病情好转)的病人但并不知道相差多少。连续 型变量可以呈现為某个范围内的任意值并同时表示了顺序和数量。年龄Age就是一个连续型变 量它能够表示像14.5或22.8这样的值以及其间的其他任意值。很清楚15岁的人比14岁的人年 长一岁。
类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)因子在R中非常重 要,因为它决定了数据嘚分析方式以及如何进行视觉呈现你将在本书中通篇看到这样的例子。 函数factor()以一个整数向量的形式存储类别值整数的取值范围是[1… k ](其中k 是名义 型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上
举例来说,假设有向量:
语句diabetes <- factor(diabetes)將此向量存储为(1, 2, 1, 1)并在内部将其关联为 1=Type1和2=Type2(具体赋值根据字母顺序而定)。针对向量diabetes进行的任何分析都会将 其作为名义型变量对待并自動选择适合这一测量尺度的统计方法。 要表示有序型变量需要为函数factor()指定参数ordered=TRUE。给定向量:
“Poor”、“Improved”、“Excellent”则会出现类似的问题。按默认的字母顺序排序的因子很少能 够让人满意 你可以通过指定levels选项来覆盖默认排序。例如:

此例子中使用的数据集都是前面例子中用到嘚忘记的看客可以上去看看。
str(patientdata)清楚地显示diabetes是一个因子而status是一个有序型因子, 以及此数据框在内部是如何进行编码的注意,函数summary()会区別对待各个变量 它显示 了连续型变量age的小值、大值、均值和各四分位数,并显示了类别型变量diabetes和 status(各水平)的频数值

 
列表(list)是R嘚数据类型中为复杂的一种。一般来说列表就是一些对象(或成分, component)的有序集合列表允许你整合若干(可能无关的)对象到单个对潒名下。例如某个 列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合可以使用函数list()创建列表
 
其中的对象可以是目前为止讲箌的任何结构。你还可以为列表中的对象命名:
 

本例创建了一个列表其中有四个成分:一个字符串、一个数值型向量、一个矩阵以及一個 字符型向量。可以组合任意多的对象并将它们保存为一个列表。 你也可以通过在双重方括号中指明代表某个成分的数字或名称来访问列表中的元素此例 中,mylist[[2]]和mylist[[“ages”]]均指那个含有四个元素的向量由于两个原因,列表 成为了R中的重要数据结构首先,列表允许以一种简單的方式组织和重新调用不相干的信息 其次,许多R函数的运行结果都是以列表的形式返回的需要取出其中哪些成分由分析人员决定。

 
矩阵是一个二维数组只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通 过函数matrix创建矩阵一般使用格式为:
 
其中vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数dimnames包含了可选的、 以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充(byrow=TRUE)还是按 列填充(byrow=FALSE)默认情况下按列填充。简单示例如下:

我要回帖

更多关于 r语言中table什么意思 的文章

 

随机推荐