2016-04-01 2 views
0

Ich versuche, mehrere Datensätze mit zunehmenden Tagen zwischen bestimmten Zeitpunkten zu erstellen. Ich möchte ihnen auch die neuen Namen geben. Laut dem folgenden Code ist der Dateiname jedoch manchmal im Format b2015-11-10 23:00:00. Ich kann sie anzeigen, indem ich in Studioumgebung klicke, aber der Dateiname ist im Code nicht gültig.
Zum Beispiel versuche ich ihnen einen neuen Namen zu geben abc < - b2015-11-10 23:00:00 aber der Fehler erscheint: Fehler: unerwartete numerische Konstante in "abc < - b2015-12-22 23 ". Irgendwelche Ideen? Es wäre schön, wenn ich Dateinamen wie a1, a2, a3 ... in der for-Schleife am Anfang zuweisen könnte, dann muss ich die Namen nicht noch einmal vergeben. Vielen Dank!Namen für for loop-Dateien zuweisen, die sich auf POSIXct beziehen

start <- as.POSIXct("2015-08-26") 
end <- as.POSIXct("2015-12-24") 
for(i in seq(from=start, by=60*60*24*7, to=end)) { 
     bbbi <- subset(bbact_2015day, ACT_DATE >="2015-08-26" & ACT_DATE <= i) 
     class(i) <- class(start) # correct i type 
     assign(paste0("b", i), aaigpa[,c(1,4,12)]) 
} 

Antwort

0

Wenn Sie nicht besorgt über beschreibende Namen sind, könnten Sie eine Variable erstellen, j, dass Sie innerhalb der for Schleife durchlaufen. Dann verwenden Sie j innerhalb der assign Funktion:

start <- as.POSIXct("2015-08-26") 
end <- as.POSIXct("2015-12-24") 
j = 1 
for(i in seq(from=start, by=60*60*24*7, to=end)) { 
    bbbi <- subset(bbact_2015day, ACT_DATE >="2015-08-26" & ACT_DATE <= i) 
    class(i) <- class(start) # correct i type 
    assign(paste0("b", j), aaigpa[,c(1,4,12)]) 
    j = j+1 
} 

Alternativ, wenn Sie mehr beschreibende Namen möchten, könnten Sie verwenden:

start <- as.POSIXct("2015-08-26") 
end <- as.POSIXct("2015-12-24") 
for(i in seq(from=start, by=60*60*24*7, to=end)) { 
    bbbi <- subset(bbact_2015day, ACT_DATE >="2015-08-26" & ACT_DATE <= i) 
    class(i) <- class(start) # correct i type 
    assign(paste0("b", format(i, '%Y%m%d'), #format date label 
      aaigpa[,c(1,4,12)]) 
} 
+0

Dank! Es klappt! – user5843090

Verwandte Themen