###################################################

问题:创建、操作向量   18.4.27

怎么创建向量 vector,,及其相关操作 ???

解决方案:

a <- 3; 或 a=3     #单数据变量

a * 2;  sqrt(a);    #单数据变量的简单运算

a2 = seq(1:8); a2   #生成等差序列   #[1]  1  2  3  4  5  6  7  8

vec1 = seq(from=0,to=9,by=2); vec1   ##[1]  0  2  4  6  8

vec2 = rep(vec_1,2); vec2  #生成重复序列 # [1]  0  2  4  6  8 10  0  2  4  6  8 10

vec3 = rep(vec_1,each=2); vec3   ## [1]  0  0  2  2  4  4  6  6  8  8 10 10

vec4 = rep(vec_1,c(1,2,3,3,2,2)); vec4  #[1]  0  2  2  4  4  4  6  6  6  8  8 10 10

link <- c(vec1,100:105,vec1)    #[1]   0   2   4   6   8 100 101 102 103 104 105   0   2   4   6   8

#c()函数可以连接不同的变量,生成一个新的变量。

vec = vector(length=6);  vec   #[1] FALSE FALSE FALSE FALSE FALSE FALSE

# vector 函数生成一个长度为 length 的空向量,元素为FALSE。可逐个赋值。vector 函数可用来代替 c 函数。

#相关操作:

#查询元素

vec1[3];   # 返回索引为 3 的元素

vec1[-3];   # 返回除了索引为 3 的其他所有元素

vec1[2:4];   #返回索引为 2-4 的元素

vec1[c(2,4)];   #返回指定的,索引为 2和4 的元素

vec1[vec1 > 5]   #返回所有值大于5的元素。

vec1[which(vec1 > 5)]   #同上,,返回所有值大于5的元素

vec1[vec1 %in% c(1,2,5,"b")]   #返回一个逻辑向量,长度同vec1,vec1中元素在c(),中则为 TRUE.

length(vec1);   #返回向量长度,可结合上行筛选条件。

#编辑向量

x[x=2] <- 12;   ## 将x的第1个为2的元素 变为12

x[x==2] <- 12;   ## 将 x 中,所有为2的元素 变为12

sum(vec1);    ## sum  min  max  mean  median  var sd 均可以如上应用。

#如果变量中有缺失值,需要添加参数na.rm=TRUE,其默认为FALSE。 计算 sum min max mean median 时,

#而有的内置函数用 na.action=TRUE,处理缺失值。还有用其他句式等,用前help (?)一下

append(v,10,after=3)  #在第三个元素后面加入10,新向量 <- (原向量,新元素) ,添加元素的及合并向量

#如果向量 x 包括名称: x[2]得到名字和值成对输出,x[[2]]只输出值。

which.max(x)  # 找出最大元素的索引

which.min(x)  # 找出大小的元素索引

which(x == 6.0)  # 等于6.0的元素的索引

which(x > 5)  # 大于5的元素的索引

讨论扩展:

向量无横竖之分。

另请参阅:

05-11 14:05