我是新手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.
我哪里出错了?我确认粘贴(“x”,1,sep ==“”)相当于“x1”,所以不应该有效吗?
无论如何,我实际上计划在数据框中放置一个邮政编码列表来替换每个searchVal =以生成一个URL列表,为每个URL获取一个数据框,然后将它们合并在一起。但鉴于我面对的困难,我想我会尝试从上面的第一个获得帮助。
提前多多感谢!
答案 0 :(得分:1)
我认为你正在尝试使用字符串作为变量,在当前设置中R知道x1然而'x1'只是一个字符串。我希望有人能够更好地解释。所以你需要使用。的 EVAL 强>
fromJSON(eval(parse(text=paste('x',1,sep=''))))
答案 1 :(得分:0)
您正在尝试将字符串用作变量。这些是完全不同的数据类型。
看那里: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”
的变量网址然后您可以使用以下命令将其从json解析为数据框:
df <- fromJSON(url)