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

技术问询:获取向量中NA值前各分段的首尾值

提取向量中NA分隔分段的首尾值

嘿,这个需求我熟!要搞定提取向量里被NA分隔的各分段首尾值的问题,咱们用R来实现的话,一步步来:

首先,先模拟一个符合你预期结果的示例向量(你可以替换成自己的实际向量):

vec <- c(1, NA, 11, 12, 13, NA, 15, 20, 44, NA, 61, 80, 119, NA, 122)

接下来,咱们把向量按NA分割成不同的分组:

# 用NA的累积计数生成分组ID,这样每个被NA隔开的分段会有唯一的分组号
groups <- cumsum(is.na(vec))
# 按分组拆分向量,同时过滤掉只有NA的分组(也就是那些NA本身所在的“组”)
split_vec <- split(vec, groups)[sapply(split(vec, groups), function(x) !all(is.na(x)))]

然后,对每个分组提取首尾值,单个元素的分组直接保留值,多个元素的分组用“和”连接首尾:

result <- sapply(split_vec, function(x) {
  if (length(x) == 1) {
    as.character(x)
  } else {
    paste(x[1], x[length(x)], sep = "和")
  }
})

最后,把结果用分号分隔成你要的格式:

final_output <- paste(result, collapse = "; ")
print(final_output)
# 输出结果:"1; 11和13; 15和44; 61和119; 122"

这样就完美匹配你要的预期结果啦!如果你的向量有特殊情况(比如开头或结尾是NA),这个代码也能自动过滤掉空分组,不会影响结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:46:36