Im Moment habe ich 16 Datenframes, die ich den Cast-Befehl über sie in einem Treffer und nicht einzeln ausführen möchte. Ich kann dies erfolgreich mit dem lapply (siehe Code unten) tun. Die Daten werden jedoch in eine Liste einer Liste geschrieben, und ich möchte die Daten lieber als separate Datenfelder verwalten. (Dies ist wahrscheinlich ineffizient, aber ich brauche verschiedene Stücke von Netzwerkanalyse auf die Daten zu tun und möchte sie halten trennen)Verwendung von Lapply, unsichtbar und über verschiedene Datenrahmen geworfen, um neue Datenrahmen zu erstellen
require(dplyr)
require(readr)
require(data.table)
library(reshape)
lapply(prolist,function(x) cast(x, mgrname ~ ticker, fun.aggregate = sum ,value = "shares"))
wo PROLIST den Namen der verschiedenen Datenrahmen enthält, die ich die Funktion anwenden möchten zu.
Ich habe den unsichtbaren Code in einer ähnlichen Situation gefunden und benutzt, die die separaten Datenframes erzeugte, aber dieses Mal kann ich es nicht zum Laufen bringen. Mein Code ist: Beachten Sie die Cast-Funktion kommt aus dem Umgestaltungspaket.
invisible(lapply(prolist,function(x) cast(x, mgrname ~ ticker, fun.aggregate = sum ,value = "shares")
{ assign(paste0("summary", x), x, pos=.GlobalEnv) }))
Der Fehler ist:
Error: unexpected '{' in:
„unsichtbar (lapply (PROLIST, Funktion (x) Besetzung (x, mgrname ~ Ticker, fun.aggregate = Summe, value = "Aktien") {“
Das Dateiformat geht wie mit einer Datei für jedes Quartal des Jahres.
| mgrname | ticker | share |
|---------|--------|-------|
| Man A | AAPL | 20|
| Man A | MSFT | 30|
| Man A | TLSA | 40|
| Man B | AAPL | 20|
| Man B | MSFT | 10|
| Man B | TLSA | 50|
| Man C | AAPL | 20|
| Man C | MSFT | 20|
| Man C | TLSA | 80|
Jede Hilfe würde wie immer sehr geschätzt werden.
Versuchen Sie folgendes: 'unsichtbar (lapply (PROLIST, Funktion (x) {Besetzung (x, mgrname ~ Ticker, fun.aggregate = Summe, value = "Aktien"); zuweisen (paste0 ("Zusammenfassung", x), x, pos = .GlobalEnv)})) ' – Sathish
plazieren Sie' {} 'am Anfang und Ende des Funktionskörpers und setzen Sie' semicolon-; 'zwischen Anweisungen. – Sathish
Welches Paket ist "Cast"? Wenn nicht Basis, bitte alle 'Bibliothek' Zeilen einbeziehen. Auch, welches Format hat die * Liste der Listen *. Sie können Listenelemente möglicherweise in einen Datenrahmen binden. Bitte illustrieren Sie mit Daten. – Parfait