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

xytpbqjk  于 2023-03-15  发布在  其他
关注(0)|答案(1)|浏览(119)

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

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

6rqinv9w1#

我添加了两个解决方案,一个基于regex,另一个基于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年3月11日,使用reprex v2.0.2

相关问题