###################################################
问题:创建、操作向量 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的元素的索引
讨论扩展:
向量无横竖之分。
另请参阅: