2010-10-21 8 views
0

J'ai des données transactionnelles à partir d'une requête SQL que je transforme en une trame de données. La première colonne de la df contient des horodatages UNIX (format = "% Y /% d /% m% H:% M") que je voudrais utiliser pour créer un graphe graphique en utilisant par pour afficher 1 ligne par date. Pour le moment je suis en train de tâtonner en divisant la colonne 1 et en la comparant avec la rangée précédente pour chercher un changement puis en assignant un indicateur fictif à utiliser dans ma commande plot. Merci, WillR tableau par date

+4

ajouter quelques exemples de données et le code que vous avez essayé. C'est beaucoup plus facile de vous aider. –

Répondre

1

Un peu difficile de répondre sans données d'exemple mais je vais prendre une photo.

Je devine que votre date ressemble à ceci: "2009-03-04 17:45"

Il l'a lu probablement le caractère. Vous pouvez vérifier la classe de chaque colonne de votre trame de données en exécutant str(data.frame)

En utilisant stringr de package, vous pouvez simplement lire les y/d/m et le convertir en une classe Date comme ceci:

library(stringr) 
date="2009-03-04 17:45" 
date=as.Date(str_replace_all(str_sub(date,3,10),"-","/"), "%y/%d/%m") 

Vous pouvez ensuite utiliser date en tant que groupe dans ggplot2 pour tracer une ligne par date. Vous pouvez également créer des panneaux séparés (un par date) en utilisant + facet_wrap(~date) dans votre appel ggplot.

+0

'as.Date (" 2009-03-04 17:45 ")' fonctionne aussi :) – Marek

+0

Je suis connu pour mes solutions compliquées. ;) – Maiasaura

1
  1. départ en qu'obtenir la partie date de votre horodatage

    SELECT *, DATE (timestampcolumn) comme theDate DE yourtable;

  2. colonne Date Convertir au facteur

    mydf < - transformer (mydf, as.factor (theDate))

  3. Terrain avec par exemple xyplot

    bibliothèque (treillis) xyplot (~ varX varier | theDate, data = mydf)