2016-04-13 13 views
1

Nach dem Importieren von Daten aus einem JSON-Stream habe ich einen Datenrahmen, der 621 Listen der gleichen 22 Variablen enthält.r: Liste der unbenannten Datensätze zusammenführen

List of 621 
$ :List of 22 
    ..$ _id    : chr "55c79e711cbee48856a30886" 
    ..$ number   : num 1 
    ..$ country   : chr "Yemen" 
    ..$ date    : chr "2002-11-03T00:00:00.000Z" 
    ..$ narrative  : chr "" 
    ..$ town    : chr "" 
    ..$ location   : chr "" 
    ..$ deaths   : chr "6" 
    ..$ deaths_min  : chr "6" 
    ..$ deaths_max  : chr "6" 
    ..$ civilians  : chr "0" 
    ..$ injuries   : chr "" 
    ..$ children   : chr "" 
    ..$ tweet_id   : chr "278544689483890688" 
    ..$ bureau_id  : chr "YEM001" 
    ..$ bij_summary_short: chr "" 
    ..$ bij_link   : chr "" 
    ..$ target   : chr "" 
    ..$ lat    : chr "15.47467" 
    ..$ lon    : chr "45.322755" 
    ..$ articles   : list() 
    ..$ names   : chr ""| __truncated__ 
$ :List of 22 
    ..$ _id    : chr "55c79e711cbee48856a30887" 
    ..$ number   : num 2 
    ..$ country   : chr "Pakistan" 
    ..$ date    : chr "2004-06-17T00:00:00.000Z" 
    ..$ narrative  : chr "" 
    ..$ town    : chr "" 
    ..$ location   : chr "" 
    ..$ deaths   : chr "6-8" 
    ..$ deaths_min  : chr "6" 
    ..$ deaths_max  : chr "8" 
    ..$ civilians  : chr "2" 
    ..$ injuries   : chr "1" 
    ..$ children   : chr "2" 
    ..$ tweet_id   : chr "278544750867533824" 
    ..$ bureau_id  : chr "B1" 
    ..$ bij_summary_short: chr ""| __truncated__ 
    ..$ bij_link   : chr "" 
    ..$ target   : chr "" 
    ..$ lat    : chr "32.30512565" 
    ..$ lon    : chr "69.57624435" 
    ..$ articles   : list() 
    ..$ names   : chr "" 

    ... 

Wie kann ich diese Listen in einem Datenrahmen von 621 Beobachtungen von 22 Variablen kombinieren? Beachten Sie, dass alle 621 Listen unbenannt sind.

bearbeiten: Pro Anfrage, hier ist, wie ich diesen Datensatz bekam:

library(rjson) 
url <- 'http://api.dronestre.am/data' 
document <- fromJSON(file=url, method='C') 
str(document$strike) 

Antwort

1

Können Sie beispielsweise darüber, wie Sie die Daten erzeugt? Ich habe die Antwort nicht getestet, aber Folgendes sollte helfen. Wenn Sie das Q aktualisieren können, wie Sie mit den Daten gekommen sind, kann ich daran arbeiten.

Update

library(rjson) 
library(data.table) 
library(dplyr) 
url <- 'http://api.dronestre.am/data' 
document <- fromJSON(file=url, method='C') 
is(document) 
listdata<- document$strike 
df<-do.call(rbind,listdata) %>% as.data.table 
dim(df) 
+0

Ich testete dies an einer Probe mit einer Liste von Listen. Es gibt eine Matrix mit den vertauschten Spalten/Zeilen zurück. Also denke ich, 'data.frame (t (do.call (rbind, listdata)))' sollte funktionieren. –

+0

aktualisiert. Die 'do.call' Methode scheint die Daten in dem von mir gewünschten Format auszudrucken, aber wenn ich sie auf eine Variable setze und die Struktur überprüfe, bekomme ich eine Liste von 13662 – trembling

+1

Probier 'data.frame (do.call (rbind, document $ strike)) ' –

0

purrr hat eine nützliche transpose Funktion, die 'umkehrt' eine Liste. Das Element $articles verursacht Probleme, da es immer leer zu sein scheint, und wenn Sie versuchen, in ein data.frame zu konvertieren, spuckt es Sie aus.

library(purrr) 
df <- transpose(document$strike) %>% 
    t %>% 
    apply(FUN = unlist, MARGIN = 2) 

df <- df[-21] %>% data.frame %>% tbl_df 
df 

Source: local data frame [621 x 21] 

         X_id number country      date 
        (fctr) (dbl) (fctr)     (fctr) 
1 55c79e711cbee48856a30886  1 Yemen 2002-11-03T00:00:00.000Z 
2 55c79e711cbee48856a30887  2 Pakistan 2004-06-17T00:00:00.000Z 
3 55c79e711cbee48856a30888  3 Pakistan 2005-05-08T00:00:00.000Z 
4 55c79e721cbee48856a30889  4 Pakistan 2005-11-05T00:00:00.000Z 
5 55c79e721cbee48856a3088a  5 Pakistan 2005-12-01T00:00:00.000Z 
6 55c79e721cbee48856a3088b  6 Pakistan 2006-01-06T00:00:00.000Z 
7 55c79e721cbee48856a3088c  7 Pakistan 2006-01-13T00:00:00.000Z 
8 55c79e721cbee48856a3088d  8 Pakistan 2006-10-30T00:00:00.000Z 
9 55c79e721cbee48856a3088e  9 Pakistan 2007-01-16T00:00:00.000Z 
10 55c79e721cbee48856a3088f  10 Pakistan 2007-04-27T00:00:00.000Z 
..      ... ...  ...      ... 
Variables not shown: narrative (fctr), town (fctr), location (fctr), deaths 
    (fctr), deaths_min (fctr), deaths_max (fctr), civilians (fctr), injuries 
    (fctr), children (fctr), tweet_id (fctr), bureau_id (fctr), bij_summary_short 
    (fctr), bij_link (fctr), target (fctr), lat (fctr), lon (fctr), names (fctr) 
Verwandte Themen