首页 > 解决方案 > 在 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()删除大括号很简单,但似乎必须有一个包或基本函数来读取具有此表示法的向量和矩阵。不幸的是,经过几个小时的搜索,我无法找到有关此主题的任何内容。

谢谢

标签: rmatrixcurly-braces

解决方案


我认为 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")

推荐阅读