2017-08-15 2 views
0

le code suivant collecte les données d'un site Web. Je récupère une liste de listes, je veux désinscrire une des listes, la modifier, puis la ré-imbriquer dans les données dans le formulaire où les données ont été reçues. Voici mon code ci-dessous, il échoue à la ré-imbrication.Récupération de données dans R: Obtenir des listes imbriquées, les désinscrire, les modifier, les recréer

library(jsonlite) 
library(plyr) 
library(ckanr) 
library(purrr) 
library(dplyr) 

ckanr_setup(url = "https://energydata.info/") 
package_search(q = 'organization:world-bank-grou')$count 
json_data2 <- fromJSON("https://energydata.info/api/3/action/package_search?q=organization:world-bank-grou", flatten = TRUE) 
dat2 <- json_data2$result 
str(dat2) 


########### 
#Get the datasets and unlist metadata 
########### 

df <- as.data.frame(json_data2$result$results) 
Tags <- select(df, id, topic) 

#Make some edits 
Tags$topic <- tolower(Tags$topic) 

res <- rbind.fill(lapply(Tags,function(y){as.data.frame(t(y),stringsAsFactors=FALSE)})) 
res$V1 = paste0("Some edit:",res$V1) 
res$V2 = paste0("Some edits:", res$V2) 
res$V3 = paste0("Some edit:", res$V3) 
res[res=="Some edit:NA"]<-NA 
res$V1 <- gsub(" ", "_", res$V1) 
res$V2 <- gsub(" ", "_", res$V2) 
res$V3 <- sub(" ", "_", res$V3) 
res 

########### 
#Re-nest 
########### 


#turning res df back into list of lists 
nestedList <- flatten(by_row(res, ..f = function(x) flatten_chr(x), .labels = FALSE)) #FAILS HERE 

ERROR: Error in flatten(by_row(res, ..f = function(x) flatten_chr(x), .labels = FALSE)) : could not find function "by_row"

+0

l'instruction 'json2_data <-' Aucun résultat -' json_data2 résultat $ count' de $ est égal à zéro – epi99

+0

désolé s'il vous plaît essayer maintenant, je fixe cette partie. – Susie

Répondre

0

Incertain du libellé de la question exactement ce genre de liste des listes que vous voulez finir avec, mais peut-être c'est ce que vous cherchez?

res %>% 
    rowwise() %>% 
    as.list() 

ou

res %>% 
    t() %>% 
    as.data.frame() %>% 
    rowwise() %>% 
    as.list()