
R
文章平均质量分 66
thoixy
这个作者很懒,什么都没留下…
展开
-
R:写文件(输入与输出)
由于R语言主要用于统计功能,读文件可能比写文件更为常用,但是写文件有时候也很必要。 Write.table()函数的用法read.table()非常相似,只不过它把数据框写入文件而不是从文件中读取。参数和选项:write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",eol = "\n", na = "N原创 2014-10-27 13:52:14 · 21082 阅读 · 0 评论 -
R:返回值
函数的返回值可以是任何R对象。尽管返回值通常为列表形式,其实返回值甚至可以说另一个函数。 可以通过显示地调用return(),把一个值返回给主调函数。如果不是用这条语句,默认将会把最后执行的语句的值作为返回值。> oddcount#返回参数中奇数的个数function( x ){ k for( n in x ){ if( n %% 2 ==原创 2014-10-27 10:12:03 · 33759 阅读 · 0 评论 -
R:控制语句
R是一种块状结构程序语言。块(block)由大括号划分,不过,当块只包含一条语句时大括号可以省略。 R语言的控制语句跟前文提到的ALGOL语言家族的控制语句非常相近。 ►循环 先看下面这段程序:> x > for( n in x ){+ print( n^2 )+ }[1] 1[1] 4[1] 9[1] 16[1] 25 这表示该循环原创 2014-10-27 10:02:33 · 1589 阅读 · 0 评论 -
R:集合运算
R中包含了一些方便的集合运算,主要由:Ю union(x, y):集合x和y的并集Ю intersect( x, y ):集合x和y的交集Ю setdiff(x, y):集合x和y的差集,即所有属于集合x但不属于集合y的元素组成的集合Ю setequal(x, y):检验集合x和y是否相等Ю c %in% y:成员,检验c是否为集合y中的元素Ю choose(x, y):从原创 2014-10-27 10:34:18 · 6589 阅读 · 0 评论 -
R:函数入门
R函数是第一类对象(第一类对象在计算机科学中 指可以在执行期创建并作为参数传递给其他函数或存入一个变量的实体。将一个实体转化为第一类对象的过程叫“对象化”)。这意味着函数在绝大多数情况下,也可以作为对象来操作。 创建函数的语法如下:g return ( x + 1 )} 这里,function()是一个内置的R函数,其功能就是创建函数。在它的右边,其实是fu原创 2014-10-27 10:08:49 · 3488 阅读 · 0 评论 -
R:表的操作
R语言中的表(table):> u > f + c( "a", "bc", "a", "a", "bc", "a", "a" ) )> tapply( u, f, length ) a bc5 2 NA #缺失值NA,事实上,这个值应该是012 1 113 2 1> table( f ) f.2f.1 a bc 5 2 0 12 1原创 2014-10-27 09:57:37 · 1159 阅读 · 1 评论 -
R:因子的常用函数
►tapply()函数 在典型的用法中,调用tapply(x,f,g)需要向量x、因子或因子列表f以及函数g。Tapply()执行的操作是,(暂时)将x分组,每组对应一个因子水平(或在多重因子的情况下对应一组因子水平的组合),得到x的子向量,然后这些子向量应用函数g()。> ages > affils > tapply( ages, affils, mean ) D R原创 2014-10-27 09:48:37 · 1145 阅读 · 0 评论 -
R:列表索引
总共有三种方法访问列表lst中的组件c,返回值是c的数据类型:●lst$c●lst[[”c”]] #是双重中括号,中括号之间不能打空格●lst[[i]] #i是c在lst中的数字编号注:列表分量常常会被编号,我们总是可以用这种编号来访问分量。后面两种方法还有另外两种:●lst[”c”]●lst[i] #i是c在lst中的数字编号原创 2014-10-27 09:10:08 · 8508 阅读 · 1 评论 -
R:增加或删除矩阵的行或列
严格来说,矩阵的长度和维度是固定的,因此不能增加或删除行或列。但是可以给矩阵重新赋值,这样可以得到和增加或删除一样的效果。 函数rbind()(代表row bind,按行组合)和函数cbind()(代表column bind,按列组合)可以给矩阵增加行或列。> one > z > cbind( one, z ) one [1,] 1 1 1原创 2014-10-27 09:02:17 · 69091 阅读 · 2 评论 -
R:获取文件和目录信息
对于实现获取文件和目录的信息、设置文件访问权限等功能,R有各种函数。Ю file.info():参数是表示文件名称的字符串向量,函数会给出每个文件的大小、创建时间、是否为目录等信息。Ю dir():返回一个字符向量,列出在其第一个参数指定的目录中所有文件的名称。如果指定可选参数recursive=TRUE,结果将把第一个参数下面整个目录树都显示出来。Ю file.exists():返回原创 2014-10-27 13:57:56 · 12167 阅读 · 0 评论 -
R:包
包是函数、数据、预编译代码以一种定义完善的格式组成的集合。计算机上存储包的目录称为库(library)。函数.libPaths()能够显示库所在的位置,函数library()则可以显示库中有哪些包。R自带了一系列默认包(包括base、datasets、utils、grDevices、graphics、stats以及methods),它们提供了种类繁多的默认函数和数据集。其他包可以通过下载来进行原创 2014-10-24 16:09:07 · 1430 阅读 · 0 评论 -
R:向量和矩阵的线性代数运算
向量乘以标量可以直接运算,如下所示: > y > 2 * y[1] 2 6 12 20 如果想计算两个向量的内积(也就是点积),可以使用crossprod()命令。> crossprod( 1:3, c( 5, 12, 13 ) ) [,1][1,] 68 数学意义上的矩阵乘法,要使用运算符“%*%”。> a > b原创 2014-10-27 10:31:48 · 4983 阅读 · 0 评论 -
R:数据框
从直观上看,数据框类似矩阵,有行和列这两个维度。然而,数据框与矩阵不同的是,数据框的每一列可以说不同的模式(mode)。例如,某列可能由数字组成,另一列可能又字符串组成。正如列表可以类比为一维的向量,数据框则可以类比为二维数据的矩阵。这里所说的类比是异质性的,也就是说每个组件(Component)的数据类型不同。 数据框是在R中最常处理的数据结构。 就技术层面而言,数据框是每个原创 2014-10-27 09:22:22 · 2815 阅读 · 0 评论 -
R:创建列表(list)
向量的元素要求都是同类型的,而列表(list)与向量不同,可以组合多个不同类型的对象。列表在R中扮演着一个至关重要的角色,是数据框和面向对象编程的基础。 列表是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表能整合若干(可能无关的)对象到单个对象名下。例如,某个列表中可能是若干向量、矩阵、数据框,甚至是其他列表的组合。 从技原创 2014-10-27 09:06:50 · 53799 阅读 · 0 评论 -
R:排序
►sort()函数 对向量进行普通数值排序,可以用sort()函数完成。> x > sort( x )[1] 5 5 12 13> x[1] 13 5 12 5注:x本身没有改变。 ►order()函数 如果想得到排序后的值(数值或字符变量)在原向量中的索引,可以使用order()函数。> x > order( x )[1]原创 2014-10-27 10:26:52 · 533 阅读 · 0 评论 -
R:导入其他样式数据的方法
►导入XML数据 以XML格式编码的数据正在逐渐增多。R中有若干用于处理XML文件的包。由Duncan Temple Lang编写的XML包允许用户读取、写入和操作XML文件。 对使用R存取XML文档感兴趣的读者可以参阅:www.omegahat.org/RSXML,从中可以找到若干份优秀的软件包文档。 ►从网页抓取数据 在Web数据抓取(Webscrapin原创 2014-10-27 13:40:05 · 2454 阅读 · 0 评论 -
R:从带分隔符的文本文件导入数据
可以使用read.table()从带分隔符的文本文件中导入数据。此函数可读入一个表格格式的文件并将其保存为一个数据框。其语法如下:Mytable 其中,file是一个带分隔符的ASCII文本文件,header是一个表明首行是否包含了变量名的逻辑值(TRUE或FALSE),sep用来指定分隔数据的分隔符,rows.names是一个可选参数,用以指定一个或多个表示行标识符的变量。原创 2014-10-27 13:35:15 · 19782 阅读 · 0 评论 -
R:字符串操作函数
R语言提供了很多字符串操作函数。 ►grep()函数 grep( pattern,x )语句在字符串向量x里搜索给定子字符串pattern。如果x有n个元素,即包含n个字符串,则grep( pattern,x )会返回一个长度不超过n的向量。这个向量的每个元素是x的索引,表示在索引对应的元素x[i]中有与pattern匹配的子字符串。> grep( "Pole", c( "E原创 2014-10-27 10:49:13 · 1618 阅读 · 0 评论 -
R:关于数据框的函数
►关于函数rbind()和cbind() 矩阵函数rbind()和cbind()也同样可以用于数据框,前提是两个数据框有相同的行数或者列数。例如,可以用cbind()向数据框中添加新的列,要求新的列与原有的列长度相同。用rbind()添加新行的时候,添加的行通常是数据框或者列表的形式。> kids > ages > d > d kids ages1 Jack 1原创 2014-10-27 09:27:24 · 2272 阅读 · 0 评论 -
R:在列表上使用apply()系列函数
使用lapply()和sapply()这两个函数,可以很方便地在列表上应用函数。 lapply()与矩阵apply()函数的用法相似,对列表(或强制转换成列表的向量)的每个组件执行给定的函数,并返回另一个列表。> lapply( list( 1:3, 4:6, 7:9 ), median )[[1]][1] 2 [[2]][1] 5 [[3]原创 2014-10-27 09:19:08 · 2547 阅读 · 0 评论 -
R:数组
数组(array)与矩阵类似,但是维度可以大于2。数组可以通过array函数创建,形式如下:myarray 其中,vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表。 > dim1 > dim2 > dim3 > array( 1:24, c( 2, 3, 4 ), di原创 2014-10-27 09:03:12 · 789 阅读 · 0 评论 -
R:一般矩阵运算
常见的矩阵运算,包括线性代数运算、矩阵索引和矩阵元素筛选。 ►线性代数运算 你可以对矩阵进行各种线性代数运算,比如矩阵相乘、矩阵数量乘法和矩阵加法。针对以前例子中的y,以下为这三种运算的实例:> y = matrix( c(1,2,3,4), nrow=2, ncol=2)> y + y [,1] [,2][1,] 2 6[2,] 4原创 2014-10-27 08:38:13 · 879 阅读 · 0 评论 -
R:导入Excel数据
读取一个Excel文件的最好方式,就是在Excel中将其导出为一个逗号分隔文件(csv),并使用read.table方式将其导入R中。 在windows系统中,可以使用RODBC包来访问Excel文件。电子表格的第一行应当包含变量/列的名称。 首先,下载并安装RODBC包。> install.packages("RODBC") 然后,你可以使用以下代码导入数原创 2014-10-27 13:38:33 · 7584 阅读 · 0 评论 -
R:正则表达式
当用到编程语言中的字符串操作函数时,有时会涉及“正则表达式”这个概念。在R语言里,当使用字符串函数grep()、grepl()、regexpr()、gregexpr()、sub()、gsub()和strsplit()时,尤其需要注意。 正则表达式是一种通配符,它是用来描述一系列字符串的简略表达式。 “[au]”表示的是含有字母a或u的字符串。> grep( "[au]",原创 2014-10-27 10:51:09 · 982 阅读 · 0 评论 -
R:递归
递归(recursive)函数会调用自己本身。通过写一个递归函数f()来解决x类型的问题:1.将x类型的原始问题划分为一个或更小的x类型问题;2.在f()中,对每个较小问题调用f()函数;3.然后再在f()中,将(2)中所有结果整合起来解决这个原始问题。 递归式解决问题的一种很优雅的方法。但是递归也存在两个潜在的缺点:Ю 递归相当抽象。因为递归其实是数学归纳法证明的逆过程原创 2014-10-27 10:20:30 · 4803 阅读 · 0 评论 -
R:矩阵元素筛选
和向量一样,矩阵也可以做筛选。> x > x [,1] [,2][1,] 1 2[2,] 2 3[3,] 3 4> x[ x[,2] >= 3, ] [,1] [,2][1,] 2 3[2,] 3 4 首先判断x的第二列向量x[ , 2]的哪些元素大于等于3,然后在x中使用原创 2014-10-27 08:43:59 · 10449 阅读 · 0 评论 -
R:矩阵工具
R中包括许多对矩阵操作的操作符和函数。 ►矩阵相乘 操作符%*% 用于矩阵相乘。n ×1 或者1 ×n 矩阵在情况允许的时候可以作为一个长度为n 的向量处理。反之,向量若出现在矩阵相乘的表达式中会被自动转换成与矩阵对应的行或者列向量。 如果A和B是大小一样的方阵,那么:> A * B 将是一个对应元素乘积的矩阵。而:> A %*% B 则是一个矩阵积。原创 2014-10-27 08:41:12 · 781 阅读 · 0 评论 -
R:因子
变量可归结为名义型、有序型或连续型变量。名义型变量是没有顺序之分的类别变量。有序型变量表示一种顺序关系,而非数量关系。连续型变量可以呈现为某个范围内的任意值,并同时表示了顺序和数量。 类别(名义型)变量和有序类别(有序型)变量在R中被称为因子(factor)。因子在R中非常重要,因为它决定了数据的分析方式以及如何进行视觉呈现。 因子是R语言中许多强大运算的基础,包括许多针对表格原创 2014-10-27 09:33:39 · 2049 阅读 · 0 评论 -
R:读写文件(输入与输出)
►从文件中读取数据框或矩阵 可以用read.table()来读取数据框。> z > z name age1 John 252 Mary 283 Jim 19注:此处scan()不能正确读取数据框,因为这个文件中数值和字符混杂,还含有表头。 似乎没有办法直接从文件中读取数据框,不过借助其他工具可以轻松办到。一个简单快速的办法是用scan()逐行读取原创 2014-10-27 13:47:47 · 3075 阅读 · 0 评论 -
R:矩阵apply()函数
apply()函数允许用户在矩阵的各行或各列上调用指定的函数。apply()函数的一般形式为:apply( m, dimcode, f, fargs ),参数解释如下:•m 是一个矩阵。•dimcode 是维度编号,若取值为1代表对每一行应用函数,若取值为2代表对每一列应用函数。•f是应用在行或列上的函数。•fargs是f的可选参数集。 例如,对于矩阵应用该函数:原创 2014-10-27 08:46:33 · 6244 阅读 · 0 评论 -
R:连接键盘与显示器(输入和输出)
R提供多个命令来连接键盘和显示器。►使用scan()函数 可以使用scan()从文件中读取或者用键盘输入一个向量,它可以是数值型或字符型向量。再增加一些操作,甚至可以读取数据来形成一个列表。 scan()可以快速的一次读取整个文件。scan(file = "", what = double(0), nmax = -1, n = -1, sep = "",quot原创 2014-10-27 13:42:24 · 4569 阅读 · 0 评论 -
R:预测离散值时间序列
问题描述: 假设这是每天的天气数据:1代表有雨,0代表没有雨。假设已经知道最近几天是否下雨,我们希望预测明天是否会下雨。具体而言,对于某个k值,我们会根据最近k天的天气记录来预测明天的天气。我们将使用过半数规则(majority rule:):如果在最近k期里1的数量大于等于k/2,那么预测下一个值为1,否则,预测下一个值为0。例如如果k=3,最近三期的数据为1、0、1,则预测下一期值为原创 2014-10-24 18:17:26 · 4444 阅读 · 0 评论 -
R:NA与NULL值
在某些情况下,向量的元素可能有残缺。当一个元素或者值在统计的时候“不可得到(not available)”或者“值丢失(missing value)”,相关位置可能会被保留并且赋予一个特定的值NA。任何含有NA数据的运算结果都将是NA。如果一次操作的数据都是残缺的,那么结果也必然不可预料,因此也是不可得到的。 而NULL代表不存在的值,而不是存在但未知的值。 ►NA的使用原创 2014-10-24 18:21:23 · 5773 阅读 · 0 评论 -
R:对象的管理
R创建和控制的实体(entity)被称为对象。他们可以说变量,数组,字符串,函数,或者其他通过这些实体定义的更为一般性的结构。 一个典型的R语言会话中,很可能产生了大量的对象。有许多工具可以用来管理这些对象。下面我们介绍下面几种工具:Ю ls()函数Ю rm()函数Ю save()函数Ю 一些可以查看对象结构的函数,如class()和mode()Ю exists()函原创 2014-10-24 18:03:11 · 1468 阅读 · 0 评论 -
R:包的分类
http://www.docin.com/p-239068748.html原创 2014-10-24 16:13:14 · 581 阅读 · 0 评论 -
R:语言介绍
R是一个有着统计分析功能及强大作图功能的软件系统,是由Ross Ihaka和Robert Gentleman1共同创立。R语言可以看作是由AT&T贝尔实验室所创的S语言发展出的一种方言。因此,R即是一种软件也可以说是一种语言。S语言现在主要内含在由Insightful公司经营的S-PLUS软件中。R是在GNU协议General Public Licence下免费发行的,它的开发和维护现在则由R原创 2014-10-23 15:43:54 · 959 阅读 · 0 评论 -
R:向量化运算符
假设我们希望对向量x中的每一个元素使用函数f()。在很多情况下,我们可以简单地对x调用f()就能完成。这可以简化我们的代码,不仅如此,还能将代码运行效率显著提高到数百倍甚至更多。 ►向量输入,向量输出 提高R代码执行速度的有效方法之一是向量化(vectorize),这意味着应用到向量上的函数实际上应用在其每一个元素上。> u > v > u > v[1] TRU原创 2014-10-24 18:19:12 · 1421 阅读 · 0 评论 -
R:数据对象及类型
►数据对象R语言创建和控制的实体被称为对象(object),它们可以说变量、数组、字符串、函数或者其它通过这些实体定义的更一般的结构(structures)。在R语言里,对象是通过名字创建和保存的。 R 对象的名称必须以一个英文字母打头,并由一串大小写字母、数字或句点(.)组成。值得注意的是:R 区分大小写。注:不要用R 的内置函数名作为数据对象的名称►对象类型 R语言的对象包括数值型、逻辑型、字原创 2014-10-24 17:59:29 · 1574 阅读 · 1 评论 -
R:Operator Syntax and Precedence
The following unary and binary operators are defined. They are listed in precedence groups, from highest to lowest.:: :::access variables in a namespace$ @component / s原创 2014-10-24 16:16:17 · 527 阅读 · 0 评论 -
R:获取帮助
开发者们做了很多工作使R更加自文档化。R提供了大量的帮助功能,学会如何使用这些帮助文档可以在相当程度上帮助我们的编程工作。R的内置帮助系统提供了当前已安装包中所有函数的细节、参考文献以及使用示例。 ►help.start()函数 打开帮助文档首页。该函数会打开一个浏览器窗口,我们可以在其中查看入门和高级的帮助手册、常见问题,以及参考材料。 ►help()函数 想原创 2014-10-23 16:29:00 · 1031 阅读 · 0 评论