J'ai -encore- un petit problème, j'ai fait tourner un script qui habituellement tourne bien sur un nouveau jeu de données et R me sort une ligne d'erreur que je n'arrive pas à résoudre
Code : Tout sélectionner
Error in as.POSIXlt.default(x, tz = tz(x)) :
do not know how to convert 'x' to class “POSIXlt”
Mon jeu de données ressemble à ça :
Code : Tout sélectionner
> head(arbremax)
date a1 a2 a3
1: 2018-07-19 00:00:00.2 49.2 407.1 37.2
2: 2018-07-19 00:00:00.4 49.2 407.7 37.2
3: 2018-07-19 00:00:00.5 49.2 407.2 37.2
4: 2018-07-19 00:00:00.7 49.2 407.8 37.2
5: 2018-07-19 00:00:01.0 49.2 407.1 37.2
6: 2018-07-19 00:00:01.2 49.1 407.2 37.2
> str(arbremax)
Classes ‘data.table’ and 'data.frame': 430150 obs. of 21 variables:
$ date: POSIXct, format: "2018-07-19 00:00:00.2" "2018-07-19 00:00:00.4" "2018-07-19 00:00:00.5" "2018-07-19 00:00:00.7" ...
$ a1 : num 49.2 49.2 49.2 49.2 49.2 ...
$ a2 : num 407 407 407 407 407 ...
$ a3 : num 37.2 37.2 37.2 37.2 37.2 ...
- attr(*, ".internal.selfref")=<externalptr>
Et le script que j'essaye d'appliquer ressemble à ça :
Code : Tout sélectionner
arbremax<-
mutate(year = year(date),
month = month(date),
day = day(date),
hour = hour(date),
minute = minute(date),
group3Min = mround(x = minute, base = 3)) %>%
### le message d'erreur vient ici ###
# Max par 3mn
group_by(year, month, day, hour, group3Min) %>%
summarise(a1.max= max(a1))
Ce que je veux c'est calculer le maximum de mes colonnes par groupe de 3 minutes.
J'ai vérifié le format de date dans la table qui fonctionne avec de script et je suis exactement pareil, donc je ne comprends pas pourquoi dans ce cas-ci ça ne marche pas.
J'ai essayé de passer ma date en posixlt, en posixct, je suis passée par as.POSIXlt() , as.POSIXct(), as_datetime() etc mais rien à faire ..
J'ai pas mal regardé sur internet et sur ce forum - notamment cette discussion qui est proche de ce que je veux faire - mais je n'ai pas réussi à résoudre mon problème :(
http://forums.cirad.fr/logiciel-R/viewtopic.php?f=3&t=9219&p=42449&hilit=mutate+error#p42449
Si vous avez besoin d'infos supplémentaires n'hesitez pas.
J'avais essayé en premier lieu avec la même table mais en format long avec les colonnes "date", "Arbre" = c(a1,a2,a3) , "Tm" = c(49.2, ..) mais bien entendu ça ne marchait pas non plus.