将字符变量转换为列表列表

时间:2017-05-15 09:40:18

标签: r

我想将字符变量转换为列表列表。我的角色如下所示:

"[["a",2],["b",5]]"

预期列表应包含两个列表,其中包含字符和每个

的编号

2 个答案:

答案 0 :(得分:1)

这是通过基础R的一种可能性,

xx <- '[[a, 2], [b, 5]]'
lapply(split(matrix(gsub('[[:punct:]]', '', unlist(strsplit(xx, ','))), 
                                             nrow = 2, byrow = T), 1:2), 
                                             function(i) list(i[[1]], as.numeric(i[[2]])))

#$`1`
#$`1`[[1]]
#[1] "a"

#$`1`[[2]]
#[1] 2


#$`2`
#$`2`[[1]]
#[1] " b"

#$`2`[[2]]
#[1] 5

答案 1 :(得分:1)

看起来像我的JSON列表,这将使您的解析工作非常简单:

x <- '[["a",2],["b",5]]'

library(jsonlite)
fromJSON(x, simplifyVector=FALSE)
#[[1]]
#[[1]][[1]]
#[1] "a"
#
#[[1]][[2]]
#[1] 2
#
#
#[[2]]
#[[2]][[1]]
#[1] "b"
#
#[[2]][[2]]
#[1] 5

如果您希望将它组合回列而不是默认情况下进行简化:

fromJSON(x)
#     [,1] [,2]
#[1,] "a"  "2" 
#[2,] "b"  "5"