在 R 版本 4.0.0 中导入 .txt 文件,其中数据包含在 {} 中
Importing .txt file in R version 4.0.0 where data is enclosed in { }
我有一个 .txt,其中数据以下列格式存储:
{{1, 2, 3, 4, 5}, {10, 9, 8, 7, 6}, {1, 3, 5, 7, 9}}
它旨在作为 5x3 矩阵加载,其中内部大括号定义 3 个向量,外部大括号定义矩阵。
对于单个向量,使用 scan()
函数将文本加载为字符向量然后使用 substr()
删除大括号很简单,但似乎必须有一个使用此表示法读取向量和矩阵的包或基本函数。不幸的是,经过几个小时的搜索,我未能找到有关此主题的任何内容。
谢谢
我认为 AllanCameron 的评论是一个很好的提示:它是 close-enough 到 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")
我有一个 .txt,其中数据以下列格式存储:
{{1, 2, 3, 4, 5}, {10, 9, 8, 7, 6}, {1, 3, 5, 7, 9}}
它旨在作为 5x3 矩阵加载,其中内部大括号定义 3 个向量,外部大括号定义矩阵。
对于单个向量,使用 scan()
函数将文本加载为字符向量然后使用 substr()
删除大括号很简单,但似乎必须有一个使用此表示法读取向量和矩阵的包或基本函数。不幸的是,经过几个小时的搜索,我未能找到有关此主题的任何内容。
谢谢
我认为 AllanCameron 的评论是一个很好的提示:它是 close-enough 到 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")