如果您运行此操作,您将获得有关财务报表的信息
library(RJSONIO)
data<-fromJSON("http://www.registeruz.sk/cruz-public/api/uctovny-vykaz?id=4455316",encoding = "UTF-8")
当你运行它时,你会得到长度为312的向量,其中包含资产负债表中的项目
data$obsah$tabulky[[1]]$data
我在循环中为更多公司做这个,有时上面的json路径不存在会返回错误。因此,如果出现错误,我会尝试返回NA,否则我想从上面提到的路径中返回对象
ifelse(class(try(data$obsah$tabulky[[1]]$data))=="try-error",NA,data$obsah$tabulky[[1]]$data)
然而,当我运行它时,它只返回1项向量未满312
答案 0 :(得分:0)
您无法从ifelse
获得所需的结果,因为根据该函数的文档,“ifelse
会返回与test相同形状的值。”您的测试长度为1,因此ifelse
仅返回长度为1的对象。
要返回不同维度的对象,您可以分解if
和else
部分并将其包裹在lapply
的调用中。这是一种方法,通过URL向量迭代您的过程并在列表中收集结果:
lapply(urls, function(x) {
# you might want try here, too, in case you get errors at this stage
X <- try(fromJSON(x, encoding = "UTF-8"))
Y <- try(X$obsah$tabulky[[1]]$data)
if (class(Y) == "try-error") {
NA
} else {
Y
}
})