如何在r中提取子串

How to extract substrings in r

假设我有一个字符串:

{"id":"35","value":"0.2"},{"id":"1462","value":"0.2"},
{"id":"1109","value":"0.2"},{"id":"220","value":"0.2"},
{"id":"211","value":"0.1"}

我需要在每个 {}

中提取子字符串

然后在 header 中创建具有 ID 的列以及与 ID 对应的数字,例如:

35  1462 1109 220 211
----------
0.2  0.2 0.2  0.2 0.1

我们可以在pasteing []之后分别在开始和结束时使用jsonlite

d1 <- jsonlite::fromJSON(paste0('[', str1, ']'))

这将是一个 2 列数据集,可以通过

转换为 4 列
setNames(as.data.frame.list(d1$value), d1$id)
#   35 1462 1109 220 211
#1 0.2  0.2  0.2 0.2 0.1

假设我们有多个字符串,然后将这些字符串折叠成一个字符串并应用 fromJSON

str2 <- c(str1, str1)
d1 <- jsonlite::fromJSON(paste0("[", paste(str2, collapse=",\n"), "]"))

数据

str1 <- '{"id":"35","value":"0.2"},{"id":"1462","value":"0.2"},{"id":"1109","value":"0.2"},{"id":"220","value":"0.2"},{"id":"211","value":"0.1"}'