如何仅用基础运算符/循环判断向量元素是否在另一向量中(不使用%in%)
实现方法
可以通过嵌套循环结合基础比较运算符来实现,具体步骤和代码如下:
- 先初始化一个和
vector_1长度一致的逻辑向量,默认值设为FALSE,用来存储最终判断结果。 - 外层循环遍历
vector_1的每一个元素,记录当前元素的位置。 - 内层循环遍历
vector_2的每一个元素,将当前vector_1的元素和vector_2的元素逐一比较:- 如果发现相等的元素,就把结果向量对应位置的值改为
TRUE,然后跳出内层循环(避免重复判断,提升效率)。
- 如果发现相等的元素,就把结果向量对应位置的值改为
- 循环结束后,输出结果向量即可。
对应的R代码:
vector_1 = c(4,3,5,1,2) vector_2 = c(3,1) # 初始化结果向量,长度和vector_1一致,默认FALSE result = logical(length(vector_1)) # 外层循环:遍历vector_1的每个元素 for (i in 1:length(vector_1)) { # 内层循环:遍历vector_2的每个元素 for (j in 1:length(vector_2)) { # 基础比较运算符判断元素是否相等 if (vector_1[i] == vector_2[j]) { result[i] = TRUE # 找到匹配后跳出内层循环 break } } } # 输出结果 result
运行这段代码后,输出结果为:
[1] FALSE TRUE FALSE TRUE FALSE
全程仅使用了基础赋值、比较运算符(==)、循环(for)和条件判断(if),未使用%in%或其他R函数,完全符合需求。
内容的提问来源于stack exchange,提问作者user20253433
相关产品推荐
相关产品推荐

