R:从字符串中解析键/值对

问题描述 投票:0回答:1

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

input <- "val1=A; val2=B; val3=C"
desired_output <- c(val1 = "A", val2 = "B", val3 = "C")
r string httpresponse
1个回答
1
投票

我添加了两种解决方案,一种基于正则表达式,一种基于

parse
函数。解析解决方案需要引用值,因此它是一个补充。

input <- "val1=A; val2=B; val3=C"
input2 <- "val1='A'; val2='B'; val3='C'"
desired_output <- c(val1 = "A", val2 = "B", val3 = "C")

ee <- new.env()
eval(parse(text = input2), envir = ee)
output_1 <- unlist(as.list(ee))
identical(output_1, desired_output)
#> [1] TRUE

res <- do.call(rbind, strsplit(strsplit(gsub(" ", "", input), ";")[[1]], "="))
output_2 <- res[, 2]
names(output_2) <- res[, 1]
identical(output_2, desired_output)
#> [1] TRUE

创建于 2023-03-11 与 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.