You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为R语言vector中每个N/A元素后追加一个N/A?

解决向量中为每个"N/A"追加一个"N/A"的问题

你的代码问题分析

你当前的代码没效果主要有三个原因:

  • append()函数不会直接修改原向量,它会返回一个新向量,你需要把结果重新赋值给原变量才会生效。
  • 当你在向量中添加元素后,原有的position位置会失效——每添加一个元素,后面所有元素的位置都会后移,之前记录的位置就不准了。
  • 循环次数写错了:你应该循环position的长度,而不是原向量的长度。

简洁高效的解决方案(推荐)

用rep()结合条件判断就能一步到位,完全适配任意长度的向量:

example <- c("a", "b", "N/A", "c", "d", "N/A", "e", "f")
# 对每个元素判断:如果是"N/A"就重复2次,否则1次
result <- rep(example, times = ifelse(example == "N/A", 2, 1))

执行后result就是你要的结果:c("a", "b", "N/A", "N/A", "c", "d", "N/A", "N/A", "e", "f")

循环实现的正确写法

如果你偏好循环方式,记得从后往前处理位置(避免添加元素导致后续位置偏移),并且每次把append的结果重新赋值:

example <- c("a", "b", "N/A", "c", "d", "N/A", "e", "f")
positions <- which(example == "N/A")
# 逆序遍历位置,防止前面的位置被后面的添加操作影响
for (pos in rev(positions)) {
  example <- append(example, "N/A", after = pos)
}

内容的提问来源于stack exchange,提问作者Brendan Sullivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:30:54