So finden Sie das höchste (neueste) und das niedrigste (früheste) Datum [R]

Versuche ich zu verwandeln, zwei Spalten in mein dataframe zu den 'guten' Datum & Zeit-Klasse, und bis jetzt nicht viel Erfolg haben. Ich habe versucht verschiedene Klassen (timeDateDatetimeSeriesPOSIXctPOSIXlt) aber ohne Erfolg. Vielleicht bin ich gerade mit Blick auf die offensichtlichen und da habe ich versucht, so viele Ansätze, ich weiß nur nicht, was was ist mehr. Ich hoffe einige von Euch können etwas Licht auf, wo ich schief gehen.

Ziel:
Ich möchte zur Berechnung der Differenz zwischen zwei Datumsangaben mit den frühesten und den spätesten Termin. Ich habe diese Arbeit mit head() und tail() sind, sondern weil diejenigen, die Werte sind nicht notwendig, das früheste und späteste Datum in meinen Daten, ich brauche einen anderen Weg. (Ich kann nicht Holen Sie sich die Sortierung der Daten zu arbeiten, weil es sortiert die Daten nur auf den Tag des Datums.)

Zweite Ziel: ich möchte zum konvertieren der Daten aus dem täglichen format (d.h. 8-12-2010) , wöchentlich, monatlich und jährlich Ebenen (D. H. '49-2010', 'Dezember-10', und nur '2010'). Diese kann getan werden, mit dem format-Einstellungen (wie %d-%m-%y). Kann das mit der Konvertierung der Daten.Rahmen, um eine Zeit-Klasse, und als die Wandlung der timeclass in das richtige format (8-12-2010 -> format("%B-%y") -> 'december-10'), und dann transformieren, dass Zeit-Klasse in einem Faktor mit Werten für jeden Monat?

Für beide Ziele, die ich brauchen, um zu konvertieren der dateframe in gewisser Weise eine Zeit-Klasse, und das ist, wo ich lief in einige Schwierigkeiten.

Mein dataframe sieht wie folgt aus:

> tradesList[c(1,10,11,20),14:15] -> tmpTimes4
> tmpTimes4
   EntryTime ExitTime
1   01-03-07 10-04-07
10  29-10-07 02-11-07
11  13-04-07 14-05-07
20  18-12-07 20-02-08

Hier ist eine Zusammenfassung von dem, was ich versucht habe:

> class(tmpTimes4)
[1] "data.frame"
> as.Date(head(tmpTimes4$EntryTimes, n=1), format="%d-%m-%y")
Error in as.Date.default(head(tmpTimes4$EntryTimes, n = 1), format = "%d-%m-%y") : 
  do not know how to convert 'head(tmpTimes4$EntryTimes, n = 1)' to class "Date"
> as.timeDate(tmpTimes4, format="%d-%m-%y")
Error in as.timeDate(tmpTimes4, format = "%d-%m-%y") : 
  unused argument(s) (format = "%d-%m-%y")
> timeSeries(tmpTimes4, format="%d-%m-%y")
Error in midnightStandard2(charvec, format) : 
  'charvec' has non-NA entries of different number of characters
> tmpEntryTimes4 <- timeSeries(tmpTimes4$EntryTime, format="%d-%m-%y")
> tmpExitTimes4 <- timeSeries(tmpTimes4$ExitTime, format="%d-%m-%y")
> tmpTimes5 <- cbind(tmpEntryTimes4,tmpExitTimes4)
> colnames(tmpTimes5) <- c("Entry","Exit")
> tmpTimes5
     Entry    Exit    
[1,] 01-03-07 10-04-07
[2,] 29-10-07 02-11-07
[3,] 13-04-07 14-05-07
[4,] 18-12-07 20-02-08
> class(tmpTimes5)
[1] "timeSeries"
attr(,"package")
[1] "timeSeries"
> as.timeDate(tmpTimes5, format="%d-%m-%y")
Error in as.timeDate(tmpTimes5, format = "%d-%m-%y") : 
  unused argument(s) (format = "%d-%m-%y")
> as.Date(tmpTimes5, format="%d-%m-%y")
Error in as.Date.default(tmpTimes5, format = "%d-%m-%y") : 
  do not know how to convert 'tmpTimes5' to class "Date"
> format.POSIXlt(tmpTimes5, format="%d-%m-%y", usetz=FALSE)
Error in format.POSIXlt(tmpTimes5, format = "%d-%m-%y", usetz = FALSE) : 
  wrong class
> as.POSIXlt(tmpTimes5, format="%d-%m-%y", usetz=FALSE)
Error in as.POSIXlt.default(tmpTimes5, format = "%d-%m-%y", usetz = FALSE) : 
  do not know how to convert 'tmpTimes5' to class "POSIXlt"
> as.POSIXct(tmpTimes5, format="%d-%m-%y", usetz=FALSE)
Error in as.POSIXlt.default(x, tz, ...) : 
  do not know how to convert 'x' to class "POSIXlt"

Das TimeDate-Pakete hat eine Funktion für "Bereich", aber das konvertieren in Date-Klasse arbeitet für eine einzelne Instanz, aber aus irgendeinem Grund nicht für ein Daten-frame:

> as.Date(tmpTimes4[1,1], format="%d-%m-%y")
[1] "2007-03-01"
> as.Date(tmpTimes4, format="%d-%m-%y")
Error in as.Date.default(tmpTimes4, format = "%d-%m-%y") : 
  do not know how to convert 'tmpTimes4' to class "Date"

Ich an dieser Stelle fast glauben, es unmöglich zu machen, also irgendwelche Gedanken würde sehr geschätzt!

Grüße,

InformationsquelleAutor der Frage JosKodify | 2010-12-08

Schreibe einen Kommentar