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

如何使用R语言合并同一向量中指定索引的元素?

R语言实现指定向量元素合并的方法

给定原向量:

vec <- c("Car", "Bus", "Subway", "Truck", "Speed", "Car")

需要将其中的"Speed"与紧随其后的"Car"合并为"Speed Car",最终得到目标向量:

c("Car", "Bus", "Subway", "Truck", "Speed Car")

方法一:基础R定位替换法

通过定位目标元素的位置,合并后重新拼接向量:

# 定义原向量
vec <- c("Car", "Bus", "Subway", "Truck", "Speed", "Car")

# 找到"Speed"的索引位置
speed_pos <- which(vec == "Speed")

# 合并"Speed"和下一个元素
merged_text <- paste(vec[speed_pos], vec[speed_pos + 1], sep = " ")

# 构建结果向量:保留前面的元素,加入合并后的文本,去掉被合并的重复元素
result_vec <- c(vec[1:(speed_pos - 1)], merged_text, vec[(speed_pos + 2):length(vec)])

# 输出结果
print(result_vec)

运行后输出:

[1] "Car"       "Bus"       "Subway"    "Truck"     "Speed Car"

方法二:正则表达式处理(适用于固定模式场景)

如果向量元素顺序固定,可先将向量转为字符串,用正则替换后再拆分:

vec <- c("Car", "Bus", "Subway", "Truck", "Speed", "Car")

# 转为空格分隔的字符串
vec_str <- paste(vec, collapse = " ")

# 精确匹配并替换目标组合
new_str <- gsub("Speed Car", "Speed Car", vec_str)
# 若需匹配所有"Speed"后跟"Car"的情况,正则可改为"Speed\\s+Car"

# 拆分回向量
result_vec <- strsplit(new_str, " ")[[1]]

print(result_vec)

该方法适合元素模式固定的场景,需注意避免误替换其他位置的相似组合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:42:46