s<-which(is.na(m)==TRUE)#找到NA的标号
m<-c(m[1:(s[1]-1)],x,m[(s[1]+1):(s[2]-1)],y,m[(s[2]+1):length(m)])#合成向量
向量是用于存储数值型、字符型或逻辑型数据的一维数组。向量只可以包含一种数据。在R中创建和操作向量很简便,下面的例子显示了如何用函数c() 或者冒号运算符来建立向量以及如何查询、修改、截取一部分向量。
在控制台中键入下列命令建立一个元素为字符串的向量并查询首元素:
键入下列命令建立一个元素为1、2、3、4、5的向量并计算向量元素之和:
创建一个新向量,元素包括2、4、6、8、10,并对其进行相关操作
如果想要初始化一个向量然后再添加内容,可以用vector()函数,vector()函数默认创建逻辑型向量。可以用mode参数指定向量类型。如果不知道向量中元素的个数,可以将个数设置为0,然后再将数据添加到向量末尾。
创建一个长度为3的逻辑型向量,未赋值元素默认为FALSE:
创建一个长度为3的数值型向量,查看元素类型并将3.1赋值于第二个元素:
我们在日常的数据分析过程中,经常要进行循环的操作。但是在R语言中,for循环的效率低下,如果是数据量比较大的情况下,可能会花费比较多的时间。因此,我们可以使用向量化操作来代替循环。向量化可以理解为高效的循环。
我们主要讲解基础包中的:
此函数经常被用于对矩阵的行或列进行指定目的的循环
• 可以被用于多个数组的循环
• 该函数作用于一行进行循环
• X 是一个数组
• MARGIN 参数是一个数字向量,在适用与矩阵时,1表示行,2表示列,也可以是列名
• FUN 是适用循环的函数
• ... 表示其他参数
使用之前我们学过的东西进行改进的话可以酱紫:
但是依然还是有缺陷,就是只能对一个分组变量,不能同时对多个变量进行
接下来我们讲下怎么弥补这个缺陷:
split 用于使某向量或对象分为指定数目的列表,指
定数目的组由因子列表确定
• X是一个向量或数据框
• F是一个因子或因子列表
• Drop表示空因子水平是否舍弃