Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 将文本文件读入R_Json_R - Fatal编程技术网

Json 将文本文件读入R

Json 将文本文件读入R,json,r,Json,R,如果之前有人问过这个问题,我很抱歉,但我还没有在网上或其他地方找到一个例子 我在一个文本文件中有一个非常脏的数据文件(可能是JSON)。我想在R中分析数据,因为我对这种语言还是新手,我想读入原始数据并根据需要从那里进行操作 我如何从机器上的文本文件中读取JSON?此外,如果它不是JSON,我如何按原样读取原始数据(不解析为列,等等),以便根据需要了解如何解析它 提前谢谢 使用软件包。特别是,请查看中的fromJSON函数 如果你想得到更多的指针,那么在下一页搜索rjson。如果你想在R中使用与J

如果之前有人问过这个问题,我很抱歉,但我还没有在网上或其他地方找到一个例子

我在一个文本文件中有一个非常脏的数据文件(可能是JSON)。我想在R中分析数据,因为我对这种语言还是新手,我想读入原始数据并根据需要从那里进行操作

我如何从机器上的文本文件中读取JSON?此外,如果它不是JSON,我如何按原样读取原始数据(不解析为列,等等),以便根据需要了解如何解析它

提前谢谢

使用软件包。特别是,请查看中的
fromJSON
函数


如果你想得到更多的指针,那么在下一页搜索rjson。

如果你想在R中使用与JSON相关的包,那么还有很多其他的帖子可以回答这个问题。我想你已经在这个网站上搜索了JSON[r],那里有很多信息

如果您只想逐行读取文本文件并在以后进行处理,则可以使用
scan()
readLines()
。他们似乎做了同样的事情,但他们之间有一个重要的区别

scan()
用于定义要查找的对象类型、数量等。有关详细信息,请阅读帮助文件。您可以使用scan将每个单词/数字/符号作为向量的元素进行读取,例如
scan(filename,”)
。还可以使用特定的分隔符分隔数据。另请参见帮助文件中的示例


要逐行读取,请使用
readLines(filename)
scan(filename,“,sep=“\n”)
。它将为您提供一个以文件行为元素的向量。这同样允许您对文本进行自定义处理。然后,如果你真的必须经常这样做,你可能会考虑在perl中这样做。

假设你的文件是JSON格式,你可以试试包>强> JSONLITE < /强> OU>强> RJSONIO < /强>或<强> RJSON 。这三个包允许您使用函数fromJSON

要安装软件包,请使用安装.packages功能。例如:

install.packages("jsonlite")
con <- file('myBigJsonFile.json') 
open(con)
objects <- list()
index <- 1
while (length(line <- readLines(con, n = 1, warn = FALSE)) > 0) {
    objects[[index]] <- fromJSON(line)
    index <- index + 1
} 
close(con)
而且,无论何时安装软件包,都可以使用函数库进行加载

library(jsonlite) 
通常,以行分隔的JSON每行有一个对象。因此,您需要逐行读取并收集对象。例如:

install.packages("jsonlite")
con <- file('myBigJsonFile.json') 
open(con)
objects <- list()
index <- 1
while (length(line <- readLines(con, n = 1, warn = FALSE)) > 0) {
    objects[[index]] <- fromJSON(line)
    index <- index + 1
} 
close(con)

con如果可能,最好包含一个示例。我看到了一系列的可能性,从使用rjson到使用scan()或readLines()与正则表达式的组合,这取决于它是否是json。另一方面,如何读入json文件已经在这个网站上得到了无数次的回答。如果这是你的问题,这个应该关闭。