如何将键/值对字符串(例如响应器头)解析为命名字符向量?
input <- "val1=A; val2=B; val3=C" desired_output <- c(val1 = "A", val2 = "B", val3 = "C")
6rqinv9w1#
我添加了两个解决方案,一个基于regex,另一个基于parse函数,解析解决方案要求用引号括起来,所以这是一个添加。
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
1条答案
按热度按时间6rqinv9w1#
我添加了两个解决方案,一个基于regex,另一个基于
parse
函数,解析解决方案要求用引号括起来,所以这是一个添加。创建于2023年3月11日,使用reprex v2.0.2