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

在R语言中按规则将两个等长向量合并为一个向量

解决R语言中合并两个含NA/空字符串向量的问题

这问题我之前处理网页抓取数据时也碰到过,刚好有几种简单直接的方法可以实现你的需求,下面给你详细说明:

先构造示例数据

首先我们先把你提到的向量还原出来,方便测试代码:

vect_1 <- c("Description 1", NA, "Description 3")
vect_2 <- c("", "Description 2", "")

方法一:基础R原生实现(无需额外包)

用ifelse()函数就能直接搞定,逻辑很直观:判断当前向量元素是NA或者空字符串时,就取另一个向量对应位置的元素,否则保留当前元素。

vect_3 <- ifelse(is.na(vect_1) | vect_1 == "", vect_2, vect_1)

方法二:用dplyr包的coalesce()函数(更简洁)

如果你平时习惯用tidyverse系列工具,可以先把空字符串转换成NA,再用coalesce()函数自动取每个位置第一个非NA的元素:

library(dplyr)

# 先清理空字符串为NA
vect_1_clean <- ifelse(vect_1 == "", NA, vect_1)
vect_2_clean <- ifelse(vect_2 == "", NA, vect_2)

# 合并向量
vect_3 <- coalesce(vect_1_clean, vect_2_clean)

验证结果

运行完上面任意一种方法后,查看结果就能得到你想要的合并向量:

vect_3
# 输出结果:
# [1] "Description 1" "Description 2" "Description 3"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:04:43