向量和赋值
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 中的每个元素都重复五次,然后将重复五次的元素逐一放入。
逻辑向量
逻辑向量元素可以被赋予的值有TURE,FALSE,NA(“不可得到”)。前两个值可以分别简写为T 和F。
注意T 和F 仅仅默认设置为TRUE 和FALSE 的等价变量,不是系统保留字(reserved
word),因此可以被用户重写。正因为这样,你应该尽量使用属于系统保留字的TRUE和FALSE。
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 Number)NaN。
字符向量
函数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")]
相关推荐
学习笔记5:数据预处理与数据挖掘十大经典算法.docx学习笔记5:数据预处理与数据挖掘十大经典算法.docx学习笔记5:数据预处理与数据挖掘十大经典算法.docx学习笔记5:数据预处理与数据挖掘十大经典算法.docx学习笔记...
前端学习笔记整理:HTML, CSS, JavaScript, Web 性能优化, 工具, 框架, 资源 前端学习笔记整理:HTML, CSS, JavaScript, Web 性能优化, 工具, 框架, 资源 前端学习笔记整理:HTML, CSS, JavaScript, Web 性能优化, ...
Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著...
R语言学习笔记,R语言数据分析从入门到进阶-代码合集R语言学习笔记,R语言数据分析从入门到进阶-代码合集R语言学习笔记,R语言数据分析从入门到进阶-代码合集R语言学习笔记,R语言数据分析从入门到进阶-代码合集R...
VC学习笔记1:按钮的使能与禁止 VC学习笔记2:控件的隐藏与显示 VC学习笔记3:改变控件的大小和位置 VC学习笔记4:什么时候设定视中控件的初始尺寸? ......
从零基础开始学习AI。python具有解释易学性特点,且有强大的科学计算工具,是现在数据分析和人工智能常用的工具语言之一。 笔记一:预期课之python的基本数据类型与字符串的运算使用。
Contiki学习笔记:启动一个进程process_start Contiki学习笔记:系统进程etimer_process Contiki学习笔记:深入理解process_run函数 Contiki 进阶学习: Contiki学习笔记:新事件产生及事件处理 Contiki学习笔记:...
数据分析与数据挖掘软件SAS数据分析工具教程 SAS学习笔记整理汇总 含代码实例介绍 共103页.pdf
读书笔记数据分析学习总结(一):数据分析那些事儿整理.pdf
R是一套由数据操作、计算和图形展示...² 拥有完整体系的数据分析工具, ² 为数据分析和显示提供的强大图形功能, ² 一套(源自S语言)完善、简单、有效的编程语言(包括条件、循环、自 定义函数、输入输出功能)。
读书笔记数据分析学习总结(一):数据分析那些事儿归纳.pdf
【读书笔记】数据分析学习总结(一):数据分析那些事儿.pdf
linux运维学习笔记:Shell变量的数值运算
自用的数据分析学习笔记,嵩老师mooc版本 https://www.icourse163.org/course/BIT-1001870002
C#学习笔记4:PC串口发送数据文章配套工程文件 今日继续我的C#学习之路,今日学习制作PC串口发送数据的窗口程序 串口是单片机上位机开发的重点,本文围绕做一个通过PC端串口发送数据的程序进行实践学习, 文章提供...
原码:直接将一个数值转化为二进制,其首位代表符号,0 为正 1 为负 反码:正数的反码与原码相同;负数反码最高位符号位不变,其余为取反,即 1 变 0、0 变 1 补码:正数的补码与原码相同;负数的补码为其反码 +1 以...
学习笔记5:大数据预处理与大数据挖掘十大经典算法.docx
SDK15 蓝牙5.0笔记24:(蓝牙数据传输篇)蓝牙FLASH存储之fstorage SDK15 蓝牙5.0笔记25:(蓝牙数据传输篇)蓝牙FLASH存储之FDS SDK15 蓝牙5.0笔记27:(蓝牙数据传输篇)蓝牙温湿度测量方法一 SDK15 蓝牙5.0笔记28...
SegY地震体数据可视化分析工具 开发笔记 1 http://blog.csdn.net/sdust_dx/article/details/9312019 SegY地震体数据可视化分析工具 开发笔记 2 http://blog.csdn.net/sdust_dx/article/details/9345091 SegY地震体...