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

如何将键值对字符串(如响应头)解析为命名字符向量?

解析键值对字符串为命名字符向量(R语言)

给定输入字符串:

input <- "val1=A; val2=B; val3=C"

要得到命名字符向量c(val1 = "A", val2 = "B", val3 = "C"),可以用以下几种方法实现:

方法一:基础R原生实现

无需额外安装包,用原生字符串处理函数即可完成:

# 按分号加空格拆分字符串,得到单个键值对
kv_pairs <- strsplit(input, "; ")[[1]]
# 将每个键值对按等号拆分,得到键和值的列表
kv_split <- strsplit(kv_pairs, "=")
# 提取所有键和值
keys <- sapply(kv_split, function(x) x[1])
values <- sapply(kv_split, function(x) x[2])
# 构建命名向量
result <- setNames(values, keys)

运行后查看结果:

result
# 输出:
# val1 val2 val3 
#  "A"  "B"  "C" 

方法二:用stringr包简化操作

如果习惯用正则提取功能,stringr包能让代码更简洁:

library(stringr)

# 提取所有等号前的键
keys <- str_extract_all(input, "\\w+(?==)")[[1]]
# 提取所有等号后的值
values <- str_extract_all(input, "(?<==)\\w+")[[1]]
# 构建命名向量
result <- setNames(values, keys)

两种方法得到的结果与期望输出完全一致,都是带有命名属性的字符向量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:52:11