如何修改R向量中除首尾及从末尾数每4个元素外的元素?
解决方法
先明确核心逻辑:把原始向量转成字符型(才能插入空字符串),确定要保留的元素位置,最后替换其余元素为空字符串。具体步骤如下:
- 初始化原始向量:
ls <- 1:14
- 将数值向量转为字符型,适配空字符串的赋值需求:
ls <- as.character(ls)
- 生成需要保留的元素索引:
- 固定保留第一个元素(索引
1) - 从向量末尾开始,每间隔4个元素取一个,用
seq()生成对应的索引:
- 固定保留第一个元素(索引
keep_indices <- c(1, seq(from = length(ls), to = 1, by = -4))
这里生成的索引是c(1, 14, 10, 6, 2),正好对应目标向量里需要保留的元素位置。
- 将不在保留列表里的元素替换为空字符串:
ls[-keep_indices] <- ""
执行完以上代码后,ls就会变成你需要的目标向量:
# 最终输出 c("1", "2", "", "", "", "6", "", "", "", "10", "", "", "", "14")
内容的提问来源于stack exchange,提问作者frank
相关产品推荐
相关产品推荐

