2017-10-12 2 views
0

J'ai 24 grands fichiers JSON et j'ai juste besoin d'un petit échantillon aléatoire de chaque fichier. Est-il possible de choisir l'échantillon avec "stream_in" de ces fichiers? Le problème est que certains fichiers sont très volumineux, de sorte qu'il n'est pas possible de stream_in dans le fichier entier ou d'ouvrir le fichier entier dans r.flux dans juste un échantillon aléatoire fichier JSON

Jusqu'à présent, je l'a fait stream_in et échantillonnage comme celui-ci:

Beauty <- stream_in(file("Beauty_5.json")) 
beauty_sample_operational <- sample_n(Beauty, 385) 

Est-il possible de combiner ces deux étapes?

packadges occasion:

dplyr 
jsonlite 

Répondre

0

Vous pouvez faire:

my_files <- list(...list here your files...) 
purrr::map(my_files, ~ stream_in(file(.x)) %>% sample_n(385)) 
+0

Quand je fais ce que je reçois cette erreur: 'my_files <- Liste ("Beauty_5.json")' (Ce works de COMAND , mais pas ceci): 'map (mes_fichiers, ~ stream_in (fichier (.x))%>% sample_n (385)) ouvrant la connexion d'entrée de fichier. Erreur dans open.connection (con, "rb"): Impossible d'ouvrir la connexion – Hadsga

+1

Cette erreur indique que 'stream_in_line' ne trouve pas le fichier' "Beauty_5.json" '. Est-ce que '" Beauty_5.json "' est dans votre répertoire de travail actuel? Avez-vous essayé de spécifier les chemins complets vers les fichiers de votre liste() peut-être avec 'my_files <- list.files (pattern = 'json', full.names = TRUE)'? –