【发布时间】:2018-11-04 00:15:10
【问题描述】:
我有一个格式如下的文本文件:
date=1638.1.16
player=\"BYZ\"
savegame_version={
\tfirst=1
\tsecond=25
\tthird=1
\tforth=0
\tname=\"England\"
}
mod_enabled={
\t\"Large Font\"
\t\"Large Tooltips\"
}
我想要做的是将其作为字符向量列表读入 R,其中 { 和 } 符号表示创建另一个列表。结果应如下所示:
[[1]]
[1] "date=1638.1.16"
[[2]]
[1] "player=\"BYZ\""
[[3]]
[[3]][[1]]
[1] "savegame_version={"
[[3]][[2]]
[1] "\tfirst=1"
[[3]][[3]]
[1] "\tsecond=25"
[[3]][[4]]
[1] "\tthird=1"
[[3]][[5]]
[1] "\tforth=0"
[[3]][[6]]
[1] "\tname=\"England\""
[[3]][[7]]
[1] "}"
[[4]]
[[4]][[1]]
[1] "mod_enabled={"
[[4]][[2]]
[1] "\t\"Large Font\""
[[4]][[3]]
[1] "\t\"Large Tooltips\""
[[4]][[4]]
[1] "}"
我尝试使用创建列表的函数遍历数据行,其中 { 符号再次递归调用同一函数。问题是结果只是一个列表,而不是上面看到的嵌套列表。
当前函数写成:
list_create <- function(vector){
temp_list <- list()
for(i in 1:length(vector)){
if(str_detect(vector[i], pattern = "\\{")) {
list_create(vector[i+1:length(vector)])
}
if(str_detect(vector[i], pattern = "\\}")) {
return(temp_list)
}
temp_list <- append(temp_list, vector[i])
}
}
有什么方法可以得到我想要的结果吗?
【问题讨论】: