首先,我找不到适合此的答案。
我正在执行此功能
find.childrens <- function(categoria){
x <- fromJSON(paste("https://api.mercadolibre.com/categories/",categoria,sep=""))
if(!is.null(nrow(x$children_categories))){
for(i in 1:nrow(x$children_categories)){
find.childrens(x$children_categories[i,1])}
}else{print(x$id)}
}
saving <- find.childrens(categoria="MLA122518")
有效的
我无法保存返回(返回到打印的位置)
有人知道如何帮助我吗?问候!
递归函数应始终返回某些东西,如果您想要类别下的所有类别:
find.childrens <- function(categoria){
x <- fromJSON(paste("https://api.mercadolibre.com/categories/",categoria,sep=""))
ids <- NULL
if(!is.null(nrow(x$children_categories))){
for(i in 1:nrow(x$children_categories)){
ids <- c(ids, find.childrens(x$children_categories[i,1]))
}
}else{
ids <- x$id
}
return(ids)
}
saving <- find.childrens(categoria="MLA122518")
> saving
[1] "MLA385241" "MLA385242"
您需要同时存储并返回每个递归跳跃返回的值:
library("jsonlite")
find.childrens <- function(categoria) {
x <- fromJSON(paste("https://api.mercadolibre.com/categories/", categoria, sep=""))
count <- 0L
if (length(x[["children_categories"]])) {
for(i in seq_along(x[["children_categories"]][["id"]])) {
count <- count + find.childrens(x[["children_categories"]][i,"id"])
}
} else {
count <- x[["total_items_in_this_category"]]
}
count
}
(saving <- find.childrens(categoria="MLA122518"))
## [1] 113