我是一个R新手,找不到任何我能理解的答案。
我的目标是从URL检索信息,然后将信息转换为数据框以供使用。
install.packages("jsonlite")
library(jsonlite)
fromJSON("https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1)")
#it works
x1 <- as.character("https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1)")
fromJSON(x1) #also works
fromJSON(paste("x",1,sep=""))
=> Error: lexical error: invalid char in json text. 我哪里错了?我验证了paste("x",1,sep=="")等同于"x1",所以它不能工作吗?
在任何情况下,我实际上计划将一个邮政编码列表放在一个数据框中,以替换每个searchVal=来生成一个URL列表,为每个URL获取一个数据框,然后将它们合并在一起。但是考虑到我在上面所面临的困难,我想我会首先尝试从上面得到帮助。
提前谢谢你!
发布于 2018-02-06 22:37:19
我认为你正在尝试使用一个字符串作为一个变量,在当前的设置中,R知道x1,但是'x1‘只是一个字符串。我希望有人能更好地解释。所以你需要使用。eval。
fromJSON(eval(parse(text=paste('x',1,sep=''))))发布于 2018-02-07 02:09:48
您正在尝试使用字符串作为变量。这些是完全不同的数据类型。
请看这里:https://www.statmethods.net/input/datatypes.html
字符串是字符向量,所以当你这样做的时候
paste("x",1,sep="")你会得到字符向量"x1“
而当你这样做的时候(顺便说一句,我在最后为你更正了“和”)
x1 <- as.character("https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1")您将获得一个变量x1,其中包含字符串形式的url。你可以在别的地方使用它。
另一个例子:
region <- "10000032"
url <- paste("https://esi.tech.ccp.is/latest/markets/", region, "/orders/?order_type=sell&page=1", sep="")应该会给出包含字符向量"https://esi.tech.ccp.is/latest/markets/10000032/orders/?order_type=sell&page=1“的变量url
然后,您可以使用以下命令将其从json解析到数据帧:
df <- fromJSON(url)https://stackoverflow.com/questions/48645140
复制相似问题