J'essaie d'expérimenter R pour analyser certaines données de mesure. J'ai un fichier .csv contenant plus de 2 millions de lignes de mesure. Voici un exemple:
2014-10-22 21:07:03+00:00,7432442.0 2014-10-22 21:07:21+00:00,7432443.0 2014-10-22 21:07:39+00:00,7432444.0 2014-10-22 21:07:57+00:00,7432445.0 2014-10-22 21:08:15+00:00,7432446.0 2014-10-22 21:08:33+00:00,7432447.0 2014-10-22 21:08:52+00:00,7432448.0 2014-10-22 21:09:10+00:00,7432449.0 2014-10-22 21:09:28+00:00,7432450.0
3 Réponses :
Peut-être que la raison de votre problème est que vous avez des dates sans temps quelque part dans votre ensemble de données. Essayez l'exemple suivant: Il crée d'abord un vecteur donc il semble donc qu'il semble donc Ne soyez pas une date sans temps dans les premières lignes de vos données, mais plus tard là-bas sera peut-être. Il y a probablement de nombreuses solutions à ce problème et je vais simplement proposer un qui s'est venu à mon esprit. P> La première étape consiste à modifier votre commande de lecture, de sorte que les dates sont stockées comme des caractères au lieu de facteurs au lieu de facteurs. : P> dates code> contenant 6 dates avec des temps et les convertit en caractères. Ensuite, j'ajoute une autre date (en tant que personnage) qui ne contient pas de temps. Lorsque vous exécutez les deux conversions vers
POSIXCT CODE>, vous remarquerez que les temps sont partis dans le résultat, dès que vous inclurez la date sans temps. P>
data$V1 <- ifelse(nchar(data$V1) > 11,data$V1, paste0(data$V1,"00:00:00"))
data$V1 <- as.POSIXct(data$V1)
Vous pouvez essayer le code ci-dessous.
Ça va:
p>
data[, .SD, by = .(year(V1),month(V1),mday(V1))]
@JDEPYPEE Avez-vous utilisé d'autres fonctions d'arrondi de niveau inférieur à celle indiquée
Sans aucune fonction d'arrondi (uniquement votre premier bloc de code), les temps sont supprimés lorsque je imprime une entrée entière.
@jdepypere Avez-vous essayé des options ("chiffres.secs") code>? Ceci peut être associé: Stackoverflow.com/a/7730759/2490497
J'ai le même problème et la lecture des réponses et des commentaires ne semble pas que le problème a été résolu (les solutions ne travaillaient dans aucun cas). Pourquoi avez-vous marqué @jangorecki des réponses comme "acceptée"? Avez-vous résolu le problème?
@RATNANIL Avez-vous essayé as.posixcct (AS.Character (.)) Code>? facteur et les entiers interne
@jangorecki Oui, j'ai essayé ça, mais cela n'a pas résolu le problème. Les valeurs temporelles sont supprimées si je transformez l'ensemble de 300 000 rangées. Si je sous-couche de 19704 ou moins, les valeurs de temps sont conservées. Bien sûr? Je travaille sur un exemple minimal, ce qui se révèle difficile depuis que je n'arrive pas à reproduire l'erreur avec des données synthétiques. Je poserai à nouveau cette question dans un nouveau post, si je ne peux pas trouver de travail.
@jangorecki s'avère que La réponse de Stibu était La solution pour moi! La valeur numéro 19705 était une valeur de date sans une composante "Time" .: - /
J'ai eu un problème similaire avec Toutefois, as.posixlt (x) code> déposer le
heure: minute: secondes code> informations, avec
x code> étant un vecteur des objets code> posixct code>, qui sont arrivés à avoir
tzone = "utc." code>. p>
as.posixlt (x, tz = "utc.") code> gardé le
heure: minute: secondes code> Informations. P>
Je ne peux pas reproduire le problème avec les données que vous avez fournies. Pouvez-vous trouver un exemple reproductible ? En outre, quelle version de r et quel OS utilisez-vous?