Ich habe einen Datenrahmen. In jeder Zeile des Datenrahmens ist die letzte Spalte eine Zeichenfolge (data_listing
). Die data_listing
Zeichenkette ist selbst eine Reihe von Schlüssel: Wert-Paaren durch Kommata getrennt. Hier ist ein Beispiel für eine der Saiten:Wie füge ich eine Zeichenkette mit analysierbaren Feldern in Spalten, die zu einem Datenrahmen hinzugefügt werden können
> data_listing[1:2]
[1] "id:4006422,memberId:2932850,price:999,make:Chevrolet,model:Cobalt,makeYear:2009,trim:LT,mileage:142000,sellerType:For Sale By Owner,dealerOptions:null,index:2"
[2] "id:3987513,memberId:67473,price:26799,make:Audi,model:S5,makeYear:2013,trim:Prestige,mileage:44673,sellerType:Dealership,dealerOptions:{options:{VDPcarousel:true,allowUsed:true,calculator:true,carFaxIntegration:true,featuredCarousel:true,feed:true,homepageSpotlight:0,inlineSpotlight:11,limit:-1,map:true,monsterAds:true,pop:2,priceReduced:true,refresh:7,wrap:true,chat:false,inventoryComparison:true,standardFeatured:3}},index:3"
Ich mag würde eine Spalte in dem Datenrahmen für jeden Wert in der data_listing Zeichenfolge erstellen. Jede Spalte verwendet den Schlüsselwert als Namen.
Wenn ich strsplit(data_listing, ",")
ausführen, dann bekomme ich eine Liste von Zeichenketten. Jedes Listenelement enthält einen Zeichenvektor "key: value" -Paare.
Ich zögere, eine for-Schleife zu schreiben, um jedes Unterlistenelement zu grep und die Werte zu verschiedenen Spalten im ursprünglichen Datenrahmen hinzuzufügen, aber dies ist die einzige Möglichkeit, wie ich das herausfinden kann.
Ich habe auf transform, und tidyr::separate()
, aber diese gierig für ein einzelnes Element in der Zeichenfolge gesucht, nicht für 28 Werte.
Wie würden Sie das lösen?
Perfect. Das zweite bis letzte Element der Zeichenfolge (dealerOptions) ist ein komplexes Element mit Unterelementen. Ich werde Ihrer Logik folgen und kopieren müssen, was Sie getan haben, um die DealerOptions auch in neue Datenspalten zu verbreiten, wenn dealerOptions vorhanden ist. –