Groupe des utilisateurs du logiciel R Index du Forum Groupe des utilisateurs du logiciel R
Un forum francophone d'échange autour du logiciel de calcul statistique R dans le domaine de la recherche agronomique tropicale
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Formats de date
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Groupe des utilisateurs du logiciel R Index du Forum -> Archives : Manipulation de données avec R
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
LA haumont



Inscrit le: 16 Mai 2006
Messages: 41
Localisation: paris

MessagePosté le: Lun Juin 19, 2006 9:07 am    Sujet du message: Formats de date Répondre en citant

Est ce que vous savez ce que cette erreur signifie exactement et comment on peut y remédier?
Code:
Erreur dans fromchar(x) : la chaîne de caractères n'est pas dans un format standard non ambigu
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Renaud Lancelot



Inscrit le: 16 Déc 2004
Messages: 2323
Localisation: CIRAD, Montpellier

MessagePosté le: Lun Juin 19, 2006 11:36 am    Sujet du message: Répondre en citant

Il faudrait nous dire comment est apparue cette erreur. La fonction traceback(), appelée immédiatement après l'erreur, peut être très utile pour comprendre d'où vient le pb.

Renaud
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
LA haumont



Inscrit le: 16 Mai 2006
Messages: 41
Localisation: paris

MessagePosté le: Lun Juin 19, 2006 11:53 am    Sujet du message: Répondre en citant

Voici la commance qui a entrainé cette erreur:
Code:
NewTab$DateA <- as.Date(NewTab$DateAngio, order="dmy")

merci
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Renaud Lancelot



Inscrit le: 16 Déc 2004
Messages: 2323
Localisation: CIRAD, Montpellier

MessagePosté le: Lun Juin 19, 2006 11:57 am    Sujet du message: Répondre en citant

Donc le message est clair: ta variable décrivant la date n'est pas dans un format sans ambiguité (exemple: 07/02/05). Il faut préciser le format avec l'argument... format. Etonnant, non ? Voir l'aide de as.Date...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
LA haumont



Inscrit le: 16 Mai 2006
Messages: 41
Localisation: paris

MessagePosté le: Lun Juin 19, 2006 12:21 pm    Sujet du message: Répondre en citant

même avec l'argument format ca ne marche pas...j'obtiens des NA dans toute la colonne. et l'aide de as.Date j'pense que je le connais plutot bien maintenant!
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Renaud Lancelot



Inscrit le: 16 Déc 2004
Messages: 2323
Localisation: CIRAD, Montpellier

MessagePosté le: Lun Juin 19, 2006 1:35 pm    Sujet du message: Répondre en citant

Je ne connais pas l'argument "order" pour as.Date, et order n'est pas une fonction générique ==> je me demande ce que signifie order = "dmy".

Code:
> test <- data.frame( MaDate = c("12-25-03", "12-25-04"))
> test
    MaDate
1 12-25-03
2 12-25-04
> as.Date(test$MaDate, order = "dmy")
Erreur dans fromchar(x) : la chaîne de caractères n'est pas dans un format standard non ambigu
> as.Date(test$MaDate, format = "%d-%m-%Y")
[1] NA NA
> as.Date(test$MaDate, format = "%m-%d-%y")
[1] "2003-12-25" "2004-12-25"


La fonction "methods" permet de trouver les méthodes disponibles pour as.Date:

Code:
> methods("as.Date")
[1] as.Date.character as.Date.date      as.Date.dates     as.Date.default   as.Date.factor    as.Date.POSIXct   as.Date.POSIXlt 


Apparemment, l'erreur proviendrait de la méthode pour les chaînes de caractères, ce qui est confirmé en examinant le code:

Code:
> as.Date.character
function (x, format = "", ...)
{
    fromchar <- function(x) {
        xx <- x[1]
        if (is.na(xx)) {
            j <- 1
            while (is.na(xx) && (j <- j + 1) <= length(x)) xx <- x[j]
            if (is.na(xx))
                f <- "%Y-%m-%d"
        }
        if (is.na(xx) || !is.na(strptime(xx, f <- "%Y-%m-%d")) ||
            !is.na(strptime(xx, f <- "%Y/%m/%d")))
            return(strptime(x, f))
        stop("character string is not in a standard unambiguous format")
    }
    res <- if (missing(format))
        fromchar(x)
    else strptime(x, format)
    .Internal(POSIXlt2Date(res))
}
<environment: namespace:base>



Il s'agit dont bien d'une erreur de format. Tu n'as sans doute pas assez bien lu l'aide de as.Date ;-)

Renaud
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
LA haumont



Inscrit le: 16 Mai 2006
Messages: 41
Localisation: paris

MessagePosté le: Lun Juin 19, 2006 2:39 pm    Sujet du message: Répondre en citant

et donc au final de quelle facon vous pensez que je puisse m'en sortir car la je galère vraiment et ne sais plus par quel moyen passé!
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Renaud Lancelot



Inscrit le: 16 Déc 2004
Messages: 2323
Localisation: CIRAD, Montpellier

MessagePosté le: Lun Juin 19, 2006 3:19 pm    Sujet du message: Répondre en citant

Trouver le bon format correspondant à vos dates. Pouvez-vous nous montrer les premiers éléments de NewTab$DateAngio ?
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
LA haumont



Inscrit le: 16 Mai 2006
Messages: 41
Localisation: paris

MessagePosté le: Mar Juin 20, 2006 9:30 am    Sujet du message: Répondre en citant

Code:
NOM         NIP   DateAngio   N.Angio
   1          xx       22.09.1952   1
             2          yyy     8.04.1915     2
             3          zzz      1.01.1923     1


il faut savoir que pour certains patients la date d'angio est absente
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Renaud Lancelot



Inscrit le: 16 Déc 2004
Messages: 2323
Localisation: CIRAD, Montpellier

MessagePosté le: Mar Juin 20, 2006 9:38 am    Sujet du message: Répondre en citant

Donc:

Code:
> test <- data.frame(DateAngio = c("22.09.1952", "8.04.1915", "1.01.1923", ""))
> test
   DateAngio
1 22.09.1952
2  8.04.1915
3  1.01.1923
4           
> as.Date(test$DateAngio, format = "%d.%m.%Y")
[1] "1952-09-22" "1915-04-08" "1923-01-01" NA         


Renaud
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
LA haumont



Inscrit le: 16 Mai 2006
Messages: 41
Localisation: paris

MessagePosté le: Mar Juin 20, 2006 12:12 pm    Sujet du message: Répondre en citant

merci beaucoup...en fait je crois que j'ai eu un soucy de version!

mais j'ai une autre erreur:
Code:

NewTriNom$ecart <- as.numeric(diff(NewTriNom$DateAngio))
Erreur dans "$<-.data.frame"(`*tmp*`, "ecart", value = c(1, 1605, 247, -1401,  :
        le tableau de remplacement a 3618 lignes, le tableau remplacé en a 3619
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Renaud Lancelot



Inscrit le: 16 Déc 2004
Messages: 2323
Localisation: CIRAD, Montpellier

MessagePosté le: Mar Juin 20, 2006 12:36 pm    Sujet du message: Répondre en citant

Fastoche. C'est en rapport avec la fonction diff. Je vous laisse chercher...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
LA haumont



Inscrit le: 16 Mai 2006
Messages: 41
Localisation: paris

MessagePosté le: Mar Juin 20, 2006 1:51 pm    Sujet du message: Répondre en citant

je sais qu'il y a peut etre un truk avec lag et différences mais ne compren pas bien ce qu'il désigne!
j'ai de moins en moins de tps donc ce serait vraiment sympa si vous pouviez m'aidez
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Renaud Lancelot



Inscrit le: 16 Déc 2004
Messages: 2323
Localisation: CIRAD, Montpellier

MessagePosté le: Mar Juin 20, 2006 8:08 pm    Sujet du message: Répondre en citant

Si x est un vecteur de longueur n, diff(x) renvoie un vecteur de longueur n-1. Les colonnes de votre data.frame n'ont alors plus la même longueur ce qui entraîne le message d'erreur.

Renaud
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
LA haumont



Inscrit le: 16 Mai 2006
Messages: 41
Localisation: paris

MessagePosté le: Mer Juin 21, 2006 9:33 am    Sujet du message: Répondre en citant

ca confirme se que j'avais compris ...merci beaucoup
je crois que j'ai tt essayer avec lag et différences..il y a une autre option ? vous voyez ce qu'il faudrait mettre exactement?
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Groupe des utilisateurs du logiciel R Index du Forum -> Archives : Manipulation de données avec R Toutes les heures sont au format GMT
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com

Anti Bot Question MOD - phpBB MOD against Spam Bots
Inscriptions bloqués / messages: 47595 / 587