IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

génération de séquence


Sujet :

R

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut génération de séquence
    Bonjour,

    J'ai un autre soucis dans R.
    Je veux faire une génération de séquence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    matrice = c()
    Sequence= seq(1,200,by=1) # j'ai 200 colonnes
    Le problème c'est que mes données vont de 400 à 600 et non 0 à 200.
    N'y a t'il pas moyen de lui demander de me le faire de 400 à 600 parce qu'après je dois faire un graphe en fonction de "Sequence" et qu'il m'affiche forcément 0 à 200 sur l'axe des abcisses.

    Tant que j'y suis, chaque nombre correspond à une autre séquence distribuée non régulièrement :
    exemple :
    400 = 567
    401 = 571
    402 = 578
    403 = 687 etc....
    Peut-on remplacer les chiffres d'origine par les nouveaux et respecter les échelles sur le graphe ?

    Je ne sais pas si je me suis bien exprimée
    Merci

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Votre problème ne me semble pas très clair mais voici quelques éléments qui pourront peut-être vous aider...

    Une séquence de 400 à 600 par pas de 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sequence<-seq(400,600,by=1)
    sequence
     [1] 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417
     [19] 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435
     [37] 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453
     [55] 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471
     [73] 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489
     [91] 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507
    [109] 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525
    [127] 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543
    [145] 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561
    [163] 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579
    [181] 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597
    [199] 598 599 600
    Citation Envoyé par Jesk34
    Tant que j'y suis, chaque nombre correspond à une autre séquence distribuée non régulièrement :
    exemple :
    400 = 567
    401 = 571
    402 = 578
    403 = 687 etc....
    Peut-on remplacer les chiffres d'origine par les nouveaux et respecter les échelles sur le graphe ?
    Pour moi, le mieux serait de prendre comme vecteur d'abscisses le vecteur correspondant à vos valeurs (par exemple : c(567,571,578,687,...) ), et comme vecteur d'ordonnées les valeurs correspondantes.
    En effet, les écarts entre les différentes valeurs seront respectés par défaut par la fonction "plot" et les valeurs affichées sur l'axe seront celles du vecteur des abscisses.

    En espérant que cela puisse vous aider. Sinon le mieux serait que vous postiez un court mais représentatif extrait de vos données et du code testé.

    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par A. D. Voir le message
    Bonjour,

    Votre problème ne me semble pas très clair mais voici quelques éléments qui pourront peut-être vous aider...

    Une séquence de 400 à 600 par pas de 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sequence<-seq(400,600,by=1)
    sequence
     [1] 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417
     [19] 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435
     [37] 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453
     [55] 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471
     [73] 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489
     [91] 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507
    [109] 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525
    [127] 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543
    [145] 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561
    [163] 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579
    [181] 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597
    [199] 598 599 600
    Le problème si je fais ça c'est qu'il va me séquencer de la 400ème colonne à la 600ème colonne de mon tableau... Alors que moi j'ai bien 200 colonnes mais qui démarrent pas à 1.

  4. #4
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Le problème si je fais ça c'est qu'il va me séquencer de la 400ème colonne à la 600ème colonne de mon tableau... Alors que moi j'ai bien 200 colonnes mais qui démarrent pas à 1.
    Dans ce cas, votre problématique n'est pas bien posée...

    Si vous souhaitez récupérer les 200 premières colonnes d'un tableau appelé par exemple "tab", vous pouvez procéder ainsi :
    Si les colonnes qui vous intéressent ne démarrent pas à la première mais par exemple à la 3ème :
    Vous pouvez également créer un vecteur "vect" qui contient les numéros de colonnes qui vous intéressent, puis faire comme ceci pour les récupérer :
    Je ne comprends pas bien ce que vous cherchez à faire... Le mieux serait que vous postiez un extrait de votre jeu de données (au moins pour que nous ayons une idée de la structure), et que vous précisiez votre problématique.


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Jeu de données :
    testforum.xlsx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    matrice = c()
    SeqNiv= seq(1,10,by=1) 
    for (i in SeqNiv)
    {
    a = hist(gbl[,i],breaks=seq(0,1,by=0.01),plot=TRUE)
    matrice = cbind(matrice,a$density/max(a$density))
    }
    dim(matrice)
    image(SeqNiv,seq(0,1,0.01),t(matrice),col=gray(1-seq(0,1,length.out=100)))
    Ce que je veux : [Edit : mon premier jet était sur 20 colonnes... d'où le 20, dans le fichier envoyéc'est 10 )
    Nom : testforum.png
Affichages : 57
Taille : 5,8 Ko

    Sauf que j'aimerais dans un premier temps qu'il y ait 400 à 410 en abcisse.
    En fait ce sont des carottages faits dans le sol, ce sont des profondeurs et chaque profondeur correspond à une date 14C. Si je pouvais avoir ces dates en abcisse à la place de la profondeur ce serait top.

  6. #6
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bon, je ne suis toujours pas sûre de bien comprendre : ce que vous voudriez c'est simplement qu'au lieu des valeurs 0 à 10 vous ayez 400 à 410 en abscisse sur votre graphe?
    Si oui, vous pouvez par exemple faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    image(SeqNiv,seq(0,1,0.01),t(matrice),col=gray(1-seq(0,1,length.out=100)),xaxt="n")
    axis(1,at=0:10,labels=seq(400,410,1)) # vous pouvez remplacer l'argument "labels" par un vecteur contenant vos dates par exemple
    En espérant que ceci vous aide à avancer...


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    il semble que la fonction xaxt ne fonctionne qu'avec la fonction plot et pas image.

  8. #8
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par Jesk34 Voir le message
    il semble que la fonction xaxt ne fonctionne qu'avec la fonction plot et pas image.
    Etrange, je l'ai testé sous Windows et sous linux (R 2.7 et R 2.14) et cela semble fonctionner très bien.

    J'ai testé avec le code suivant (exemple obtenu dans l'aide de la fonction "image") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    x <- y <- seq(-4*pi, 4*pi, len=27)
    r <- sqrt(outer(x^2, y^2, "+"))
    image(z = z <- cos(r^2)*exp(-r/6), col=gray((0:32)/32),xaxt="n")
    axis(1,at=0:1,labels=c("A","B"))
    Après c'est peut-être au niveau de l'utilisation de la fonction "axis" qu'il faut ajuster les paramètres en fonction de votre cas précis.


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Ca fonctionne pour mes profondeurs avec votre aide et un peu de bidouille.
    Merci
    Je galère toujours avec mes dates, j'ai essayé de créer un vecteur ( la flemme d'écrire 200 dates) mais impossible de l'intégrer.

  10. #10
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Afin que nous puissions vous aider au mieux, il serait bien que vous essayiez de développer au maximum vos posts sur le forum : quelles sont vos données? de quoi sont-elles composées? que cherchez-vous à faire précisément? qu'avez-vous déjà essayé (exemple de code)?

    Citation Envoyé par Jesk34
    Je galère toujours avec mes dates, j'ai essayé de créer un vecteur ( la flemme d'écrire 200 dates) mais impossible de l'intégrer.
    Dans quoi sont contenues / où sont les dates dont vous parlez (je ne les vois pas dans le fichier que vous avez mis en pièce jointe)?
    A quel endroit souhaitez vous intégrer le vecteur contenant ces dates? Au niveau de l'axe des abscisses du graphe? Quel code avez-vous utilisé pour le moment?


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    vect<-c(1580.561642,1565.721486,[j'ai copié les 200 dates],-10834.50975,-10988.19226)
    image(SeqNiv,seq(0,1,0.01),t(matrice),col=gray(1-seq(0,1,length.out=100)),xaxt="n")
    axis(1,at=0:221,labels=vect)
    Le problème c'est qu'elles ne sont pas distribuées selon un pas de temps régulier et le graphe que ça me sort ne respecte pas l'échelle.

  12. #12
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Ok, donc si j'ai bien compris, "vect" est un vecteur des "dates" que vous voudriez voir s'afficher en abscisse. De plus, ces dates sont des valeurs réelles et vous voudriez que l'échelle de l'axe des abscisses respecte les écarts entre deux "dates" consécutives. C'est bien cela?

    Pour cela, il va falloir remplacer l'élément correspondant aux abscisses dans la fonction "image".

    Si votre vecteur de "dates" est ordonné (mais il ne semble malheureusement pas l'être dans votre exemple), vous pouvez utiliser directement ce vecteur comme paramètre correspondant aux abscisses dans la fonction image.
    Sinon, je crains fort qu'il faille créer vous même le vecteur à utiliser. Une idée pour vous servir de base (mais il y a sûrement moyen de faire mieux) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    vect<-c(1580.561642,1565.721486,-10834.50975,-10988.19226)
     
    ecart<-abs(diff(vect))
     
    ecart
    [1]    14.84016 12400.23124   153.68251
     
     
    SeQ<-c(0,cumsum(ecart))
     
    SeQ
    [1]     0.00000    14.84016 12415.07139 12568.75390
    Puis utiliser "SeQ" comme paramètre pour les abscisses dans la fonction "image", et également pour at dans la fonction "axis".


    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  13. #13
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup pour votre aide.
    Ça marche bien !
    Désolé, j'ai mis le temps mais j'y suis arrivée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. génération des séquences avec perms
    Par sophielow dans le forum MATLAB
    Réponses: 3
    Dernier message: 24/02/2013, 13h11
  2. Réponses: 0
    Dernier message: 14/04/2010, 01h03
  3. génération d'une m-séquence
    Par loulitta dans le forum Signal
    Réponses: 0
    Dernier message: 25/02/2010, 09h48
  4. Génération d'une séquence alphanumérique
    Par nicoletflo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/05/2008, 15h04
  5. Réponses: 18
    Dernier message: 08/07/2006, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo