如何合并向量:提取x3奇数位置元素与Numbers偶数位置元素
解决向量提取与合并问题
问题分析
你现有的代码存在几个关键问题:
MV函数仅生成了奇数位置的索引,但没有用这个索引去提取x3的对应元素;MV2函数生成的是全量索引,不符合提取Numbers偶数位置元素的需求;MV3函数只是拼接了两个函数对象,没有实际调用函数去提取元素,且参数定义和调用不匹配。
正确实现代码
要完成提取x3奇数位置元素、合并Numbers偶数位置元素的需求,直接通过索引提取后合并即可:
Numbers = c(10,20,30,40,50,60,70,80,90,100,110,120) x3 = c(10,20,30,40,50,60,70,80,90) # 提取x3的奇数位置元素(索引1,3,5,7,9) x3_odd_elements = x3[seq(from = 1, to = length(x3), by = 2)] # 提取Numbers的偶数位置元素(索引2,4,6,8,10,12) numbers_even_elements = Numbers[seq(from = 2, to = length(Numbers), by = 2)] # 合并两个向量 combined_result = c(x3_odd_elements, numbers_even_elements) # 输出结果 print(combined_result)
运行上述代码会得到:
[1] 10 30 50 70 90 20 40 60 80 100 120
匹配你期望结果的调整
如果你的目标是得到[1] 10 20 30 40 50 60 70 80 90 100 120,这实际是x3的全部元素加上Numbers偶数位置中不在x3里的元素(100、120),可以这样实现:
# 提取Numbers偶数位置中不在x3里的元素 extra_elements = numbers_even_elements[!numbers_even_elements %in% x3] # 合并x3全部元素和额外元素 expected_result = c(x3, extra_elements) print(expected_result)
运行后会得到你期望的结果:
[1] 10 20 30 40 50 60 70 80 90 100 120
内容的提问来源于stack exchange,提问作者GregoryBobert
相关产品推荐
相关产品推荐

