如何删除R语言vector向量中每第3个元素?
R语言移除向量中每第3个元素的实现方法
你可以通过批量匹配下标的方式实现需求,无需逐个指定删除位置,常见实现方式如下:
- 方法1:用下标取模逻辑筛选保留元素
原理是对向量的下标序列做模3运算,保留余数不等于0的位置(即跳过所有第3个元素),代码示例:
myList = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) # 筛选下标模3不等于0的元素 myList <- myList[seq_along(myList) %% 3 != 0]
- 方法2:批量生成要删除的下标后排除
直接生成所有第3个元素的下标序列,再统一删除这些位置的元素,代码示例:
myList = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) # 生成3、6、9...间隔为3的下标序列,删除对应位置 myList <- myList[-seq(3, length(myList), by = 3)]
两种方法运行后输出结果均为1,2,4,5,7,8,10,11,13,14,符合需求。
内容的提问来源于stack exchange,提问作者RedDragon2001
相关产品推荐
相关产品推荐

