R语言如何在重复向量间插入值、判断相等及查询向量长度
1. 构造带间隔0的重复向量
你可以直接用c()函数按需求拼接向量即可,修改后代码如下:
x <- c(3,10,30) n <- c(x, 0, x) n
运行后输出结果为 3 10 30 0 3 10 30,符合要求。如果需要用rep函数实现,也可以写为n <- c(rep(x, 1), 0, rep(x, 1)),效果完全一致。
2. 判断两个向量内容是否相等
分两种使用场景选择对应方法:
- 逐元素判断是否相等:使用
==运算符,返回和向量长度一致的逻辑值向量,每个位置对应两个向量同位置元素的对比结果 - 判断两个向量整体完全相等:
- 对精度要求高、需要严格匹配(包括数据类型):用
identical()函数,返回单个逻辑值 - 数值型向量对比、可以容忍浮点运算误差:用
all.equal()函数,返回单个逻辑值
示例代码:
- 对精度要求高、需要严格匹配(包括数据类型):用
vec1 <- c(1,2,3) vec2 <- c(1,2,3) vec3 <- c(1,3,2) vec4 <- c(0.1+0.2, 3) vec5 <- c(0.3, 3) # 逐元素对比 vec1 == vec2 # 返回 TRUE TRUE TRUE vec1 == vec3 # 返回 TRUE FALSE FALSE # 严格整体对比 identical(vec1, vec2) # 返回 TRUE identical(vec1, vec3) # 返回 FALSE identical(vec4, vec5) # 返回 FALSE(浮点运算精度导致的微小差异被识别) # 容错整体对比 all.equal(vec4, vec5) # 返回 TRUE(忽略浮点精度层面的微小差异)
3. 查询向量长度
直接调用length()函数即可,示例:
x <- c(3,10,30) length(x) # 返回 3 n <- c(x, 0, x) length(n) # 返回7
内容的提问来源于stack exchange,提问作者Sabrina
相关产品推荐
相关产品推荐

