2017-06-09 4 views
0

ich ganz einfache Methode haben, die in folgender Weise Werte für meine Liste zuweist: 1. Es geht in den Ordner mit Dateien 2. Prüft das Vorhandensein einer Datei mit der Banknummer stellte ich 3. Wenn es da ist, dauert es Daten von ihm zu einem bestimmten Zeitpunkt wieder, die ich in diesem Verfahren eingestellt Hier ist die Methode:Assign Werte von zwei Bedingungen abhängig (nicht-triviale)

balancesheet.list <- getBalanceSheet_list("2016-04-01",1481) 

So in diesem Beispiel geht es zu der Ordner, nimmt die Datei mit der Nummer 1481 und ordnet Daten für das Datum 2016-04-01 aus dieser Datei meiner Liste zu.

Ich muss Daten aus allen Dateien in diesem Ordner für jedes Datum, das ich brauche, zuweisen. Daten zu jedem bestimmten Datum und jeder Banknummer sollten in einer separaten Unterliste oder nur in einer separaten Liste gespeichert werden. Genauer gesagt, ich muss Daten ab 2007-04-01 und bis 2017-01-01 von Monaten für jede Bank Nummer zuweisen. Ich habe zwei CSV-Dateien erstellt: ein mit Datumsbereich I von Monaten benötigen:

2007-02-01 
2007-03-01 
2007-04-01 
2007-05-01 
2007-06-01 
... 
2016-11-01 
2016-12-01 
2017-01-01 

und zweiten mit Banknummern Ich habe im Allgemeinen:

1 
2 
21 
52 
53 
55 
... 
3525 
3527 
3528 
3529 
3533 

Meine Idee, diese Dateien zu importieren, war in R und setzen sie stattdessen "2016-04-01" und 1481. Aber das ist schlechte Idee, wie ich gesehen habe. Ich beschloss folgenden Code, um zu versuchen

auch keine Dateien importieren:

balancesheet.list<- getBalanceSheet_list(seq(as.Date("2007-04-01"), as.Date("2017-01-01"), by="months"),1481) 

R gibt einen Fehler: Länge Argument "Muster"> 1 ist, nur das erste Element wird

verwendet werden Wie ich verstehe, ist das Problem, dass es versucht, Daten aus mehreren Monaten in 1 Liste zuzuordnen. Kann es sein, dass es möglich ist, Daten für jedes einzelne Datum durch Listen oder Unterlisten aufzuzeichnen?

Wie kann eine von zwei Ideen modernisiert werden? Bitte, helfen Sie.

Antwort

1

können Sie

versuchen
lapply(seq(as.Date("2007-04-01"), as.Date("2017-01-01"),by="months"),getBalanceSheet_list,1481) 

Dies sollten Sie Daten aus der Datei 1481 für alle Termine geben. Ich sage ‚sholud‘, weil es schwer ist, um sicher zu sein, wenn Sie geben keine Details über getBalanceSheet_list Funktion;)

Nein, wir

one_file <- function(file) lapply(seq(as.Date("2007-04-01"), as.Date("2017-01-01"),by="months"),getBalanceSheet_list, file) 

und führen Sie es für alle Dateien eine funtion machen kann. Aber zuerst müssen wir einen Vektor mit Namen, sagen:

files<-c(1, 2, 21, ...) 

Offensichtlich haben Sie ... in numers zu ändern. Ich kann das nicht tun, beacuse (wieder) Sie haben sie nicht liefern :)

Jetzt

lapply(files, one_file) 

sholud geben Sie alle Informationen die Sie benötigen.

Sie können auch alle lapply durch sapply ersetzen. Dies würde Ergebnisse schöner aussehen lassen, wenn nur getBalanceSheet_list ein hübsches Objekt (wie Vektor oder Einzelwert) zurückgibt.

Verwandte Themen