r - 在 R 版本 4.0.0 中导入 .txt 文件,其中数据包含在 {}
问题描述
我有一个 .txt,其中数据以以下格式存储:
{{1, 2, 3, 4, 5}, {10, 9, 8, 7, 6}, {1, 3, 5, 7, 9}}
它旨在作为 5x3 矩阵加载,其中内大括号定义 3 个向量,外大括号定义矩阵。
对于单个向量,使用该scan()
函数将文本加载为字符向量然后用于substr()
删除大括号很简单,但似乎必须有一个包或基本函数来读取具有此表示法的向量和矩阵。不幸的是,经过几个小时的搜索,我无法找到有关此主题的任何内容。
谢谢
解决方案
我认为 AllanCameron 的评论是一个很好的提示:它与 JSON 非常接近,您可以这样对待(稍加按摩):
txt <- "{{1, 2, 3, 4, 5}, {10, 9, 8, 7, 6}, {1, 3, 5, 7, 9}}"
jsonlite::fromJSON(gsub("\\}", "]", gsub("\\{", "[", txt)))
# [,1] [,2] [,3] [,4] [,5]
# [1,] 1 2 3 4 5
# [2,] 10 9 8 7 6
# [3,] 1 3 5 7 9
要对文件执行此操作,您必须首先读取其中的全部内容,使用
txt <- paste(readLines(txtfile), collapse = "\n")