当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

(数据分析工具)R学习笔记一:向量运算

发表于: 2013-01-28   作者:静妙仙人   来源:转载   浏览次数:
摘要: 向量和赋值   R 在已经命名的数据结构上起作用。其中,最简单的结构就是由一串有序数值构成的数值向量。 x <- c(1,2,3,4,5,6)    这是一个用函数c()完成的赋值语句。(<-是赋值符号) 注:等同于assign(“x”,c(1,2,3,4,5,6))   向量运算     &nbs

向量和赋值

 

R 在已经命名的数据结构上起作用。其中,最简单的结构就是由一串有序数值构成的数值向量。

x <- c(1,2,3,4,5,6)

   这是一个用函数c()完成的赋值语句。(<-是赋值符号)

注:等同于assign(“x”,c(1,2,3,4,5,6))

 

向量运算

 

         基本的算术运算符就是常用的+-*/和做幂运算的^。另外还包括常用的数学函数,如log,exp,sin,cos,tan,sqrt等等。

       Min(x)max(x)分别给出向量x最小值和最大值的函数;

       Range(x)函数:是一个得到长度为2的向量,即c(min(x),max(x))

       Length(x)函数:给出向量x的元素个数;

       Sum(x)函数:计算向量x中元素的累加和;

       Prod(x)函数:得到x向量中元素的乘积;

       Mean(x)函数:计算均值,等价于sum(x)/length(x)

       Var(x)函数:计算样本方差,等价于sum((x-maen(z))^2)/(length(x)-1) ;(如果var()的参数是一个n*p的矩阵,则将该矩阵行与行之间看作是相互独立的p-变量的样本向量,从而得到一个p*p的样本协方差矩阵);

       Sort(x)函数:返回一个和x长度一样但元素以升序排列的向量;(order()sort.list()排序功能更强大

 

生成正则序列

 

           R有一些列产生常用数列的工具。

   常用的如,1:30等价于向量c(1,2,……,29,30);

注:在R表达式中,冒号优先级别最高。

函数seq() 是数列生成中最为常用的工具。它有五个参数,仅部分参数需要每次

都设定。起始的两个参数,表示一个数列的首尾。如果只是给定这两个值,则和冒号

运算符的效果完全一样了。如seq(2,10) 等价于2:10

       seq() 和其他许多R 函数的参数一样都可以用参数命名方式给定。在这情况下,

参数的顺序可以是任意的。这样,前两个参数就可以用from=value to=value 方式

设定;因此seq(1,30)seq(from=1, to=30)seq(to=30, from=1) 1:30 完全一

样。seq() 随后的两个参数是by=value length=value;它们分别表示这个数列的步

长和长度。如果二者没有设定,默认值就是by=1(步长为1)。

         例如:seq(-5,5,by=.2) -> s3,等价于将向量c(-5.0,-4.8,-4.6,……,4.6,4.8,5.0)赋给s3;类似的是,s4 <- seq(length=51, from=-5, by=.2),将在s4中产生一样的向量。

         第五个参数是along=vector。使用这个参数时,它必须是唯一的4,它可以创建数

1, 2, ..., length(vector),或者是空数列(在向量vector为空时)。

         Rep()函数:可以用各种复杂的方式重复一个对象。最简单的方式:s5 <- rep(x, times=5),这种方式先把x 的完整拷贝五次,保持x 的数列顺序,逐一放在s5 中。另一种有用的

方式是s6 <- rep(x, each=5)这种方式把x 中的每个元素都重复五次,然后将重复五次的元素逐一放入。

 

逻辑向量

 

         逻辑向量元素可以被赋予的值有TUREFALSENA(“不可得到”)。前两个值可以分别简写为T F

注意T F 仅仅默认设置为TRUE FALSE 的等价变量,不是系统保留字(reserved

word),因此可以被用户重写。正因为这样,你应该尽量使用属于系统保留字的TRUEFALSE

         R 的逻辑运算符是<<=>>=以及判断是否严格相等的== 和判断不等的!=。此外,如果c1 c2 是逻辑不等式,那么c1 & c2 是它们的交集运算(“与”)c1 | c2 是并集运算(“或”)!c1 c1 的非运算。

         注:在常规的算术运算中采用逻辑变量,它们会被强制转换成数值变量,FALSE 0 TRUE 变成1

 

缺损值

 

在某些情况下,向量的元素可能有残缺。

当一个元素或者值在统计的时候“不可得到”(not available)或者“值丢失”(missing value),相关位置可能会被保留并且赋予一个特定的值NA。任何含有NA 数据的运算结果都将是NA

函数is.na(x) 返回一个和x同等长度的向量。它的某个元素值为TRUE 当且仅当x中对应元素是NA

数值计算会产生第二种“缺损”值,也称为非数值(Not a NumberNaN

 

字符向量

 

函数paste() 可以有任意多的参数,并且把它们一个接一个连成字符串。

例如,labs <- paste(c("X","Y"), 1:10, sep="")

使得labs 变成一个字符向量。

c("X1", "Y2", "X3", "Y4", "X5", "Y6", "X7", "Y8", "X9", "Y10")

 

索引向量

 

逻辑向量:这种情况下,索引向量必须和被挑选元素的向量长度一致。向量中对应索引向量元素为TRUE的元素将会被选中,而那些对应FALSE的元素则被忽略,例如,y<-x[!is.na(x)]。这将创建(或重建)一个含x 中非缺省且次序不变的元素的对象y注意,如果x含有缺省值,y 在长度上将会比x短。

(x+1)[(!is.na(x)) & x>0] -> z

将创建一个对象z 并且把向量x+1 的值赋给它,其中要求x 中对应的元素既非缺省又是正值。

 

正整数向量:x[6]表示x 的第六个元素;

                              x[1:10],选择x的前10个元素(我们假定length(x)长度不小于10)

                              c("x","y")[rep(c(1,2,2,1), times=4)],会产生一个长度为16,由"x", "y", "y", "x" 重复4次而构成的向量。

 

负数向量:这种索引向量指定被排除的元素而不是包括进来。因此,y <- x[1(1:5)] x除开始5个元素外的其他元素都赋给y

 

字符串向量:这可能仅仅用于一个对象可以用name属性来识别它的元素。这种情况下,名字向量的子向量可以像上面第二条提到的正整数标签一样使用。

> fruit <- c(5, 10, 1, 20)

> names(fruit) <- c("orange", "banana", "apple", "peach")

> lunch <- fruit[c("apple","orange")]

(数据分析工具)R学习笔记一:向量运算

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
  前言  在数学中,几何向量指具有大小(magnitude)和方向的几何对象,它在线性代数中经由抽象化
11.2对应分析 在很多情况下,我们所关心的不仅仅是行或列变量本身,而是行变量和列变量的相互关系,
假设检验及R实现 7.1假设检验概述 对总体参数的具体数值所作的陈述,称为假设;再利用样本信息判断假
二维表转换成一维表 对二维表做数据透视图,然后去掉行和列的勾选,双击求和的值的单元格,会自动生
上周从买了两本书《谁说菜鸟不会数据分析》和《大数据时代》,学习过程中想把书本内容通过总结、理
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="ProgI
1 plot函数 > setwd("E:/R/R-beginer-guide/data/RBook") > Veg <- read.table(file = "Ve
BirdFluCases.txt1 饼图 1.1 载入数据 setwd("E:/R/R-beginer-guide/data/RBook") BFCases <- re
1 多组图 setwd("E:/R/R-beginer-guide/data/RBook") Benthic <- read.table(file="RIKZ2.txt",h
注意:关闭R之前务必保存工作空间,保证学习的连续性。这样以前数据的控制台命令执行的效果以及相关
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号