我在 sink() 创建的文件中写入了列表 - “file.txt”。该文件包含一个列表,如下所示,并且仅包含数字:
[[1]]
[1] 1 2
[[2]]
[1] 1 2 3
如何从此类文件中读取数据作为列表?
编辑:
我将尝试将其作为字符串读取,然后使用一些正则表达式删除'[[*]]'
并'[*]'
用特殊符号替换 - 让它成为'@'
。然后取出 之间的每个子字符串'@'
,将其拆分为向量并放入空列表中。
像这样的东西应该可以解决问题。(确切的细节可能会有所不同,但至少这会给你一些想法。)
l <- readLines("file.txt")
l2 <- gsub("\\[{2}\\d+\\]{2}", "@", l) # Replace [[*]] with '@'
l3 <- gsub("\\[\\d+\\]\\s", "", l2)[-1] # Remove all [*]
l4 <- paste(l3, collapse=" ") # Paste together into one string
l5 <- strsplit(l4, "@")[[1]] # Break into list
lapply(l5, function(X) scan(textConnection(X))) # Use scan to convert 2 numeric
# [[1]]
# [1] 1 2
#
# [[2]]
# [1] 1 2 3