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 :

Création d'un frame à partir d'un autre frame


Sujet :

R

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 48
    Points : 34
    Points
    34
    Par défaut Création d'un frame à partir d'un autre frame
    Bonjour,

    débutant en R je me doute que ce que je veux faire dois être très simple... Mais je n'ai pas réussi à trouver de solution.

    J'ai un fichier qui ressemble à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tracking_id	ANS_A	ANW_A	ANW_B	ANW_C	ANW_D	ANW_F	ANW_G	ANW_I	ANW_K
    Minc3s00001g00001	0	0.392696953259666	0	0.285557309007774	0	0.76715586608218	0.614897216033135	0.471291711058939	1.02694162795903
    Minc3s00001g00002	1.78411781646292	1.98376156028616	1.55930801090701	1.84806589540399	1.82898195400792	1.61836193110988	1.57795112772975	1.54082981411108	1.53249958609466
    Minc3s00001g00003	2.15654915133178	1.71079409993033	1.18695633546541	2.11958577496178	1.34183005692051	1.78017324364259	1.42813479402879	2.01102035551626	1.76760106805034
    je souhaite calculer les variances de chaque "Minc" dans les différentes conditions: 1 ligne = 1 variance.
    Puis je souhaite ajouter un test afin d'éliminer les variances que je considère trop faibles pour récupérer les variances qui m'intéressent, je souhaite donc récupérer en output un fichier qui ressemble à celui que je donne en input mais avec les lignes qui ne m'intéressent pas en moins...

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    Coeff_Var <- function(x){
          (sd(x)/mean(x))*100
          }
     
     
    mon_fichier <- file(description = "/calcul/log(FPKM+1)_filtré.txt", open = "rw", blocking = TRUE)
    mydata2 <- read.table("/calcul/tab_fpkm+1.txt",sep="\t", header = T, as.is=TRUE)
     
    nb_row<-nrow(mydata2)
    i<-1
     
    x <- c(1, 6, 3, 4, 9, 6)
    print(var (x))
     
    n<-0
    tab_var<-
    	while (i<nb_row){
     
     
    	mydata <- as.numeric(mydata2[i,2:10])
    	i<-i+1
    	var_test <- var (mydata)
     
    	if(var_test>0.05){
     
    	print (mydata)
    #~ 	writeLines(mydata, con = "/calcul/log(FPKM+1)_filtré.txt", sep = "\n", useBytes = FALSE)
    #~ 	writeLines(mydata, con = mon_fichier, sep = "\n", useBytes = FALSE)
    	cat(file = "/calcul/log(FPKM+1)_filtré.txt", sep = " ", fill = TRUE, labels = NULL,
        append = FALSE)
    	n<-n+1
    	resultat <- write.table(mydata)
    	}
     
    	#print(Coeff_Var(x=mydata))
     
     
    	}
    print(n)
    print(resultat)
    Le problème étant que je n'arrive à sortir mes données au format souhaité... pour si possible les réécrire dans un nouveau fichier txt (et conserver le format du fichier initial).

    Merci à vous pour votre aide

    ps : si un post existe déjà je ne l'ai pas trouvé...

  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,

    Peut-être que quelque chose comme ce qui suit (en adaptant à votre cas particulier, avec les bons noms de fichiers, etc) fera l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    # Définition de votre fonction de calcul de la variance
     
    Coeff_Var <- function(x){
          (sd(x)/mean(x))*100
          }
     
    # Chargement de vos données dans R
     
    mydata2 <- read.table(....)
     
    # Sélection des colonnes avec les valeurs pour le calcul de la variance
     
    myvaleurs <- mydata2[, 2:10]
     
     
    # La ligne ci-dessous est très pratique (voir ?apply pour l'aide de la fonction "apply"), en gros elle va pour chaque ligne (deuxième paramètre égal à 1) de "myvaleurs", appliquer la fonction "Coeff_var"
     
    all_vars <- apply(myvaleurs, 1, Coeff_Var)
     
    # La fonction "which" est également très pratique, ici le vecteur "vars_tokeep" va contenir les indices des lignes de "mydata2" pour lesquelles la valeur de "Coeff_var" calculée est supérieur au seuil (0.05)
     
    seuil <- 0.05
     
    vars_tokeep <- which(all_vars > seuil)
     
    # "mydata_final" va contenir les données que vous souhaitez conserver à la fin
     
    mydata_final <- mydata2[vars_tokeep, ]
     
    write.table(mydata_final , file = "Donnes_finales.txt")
    N'hésitez pas à demander si vous souhaitez plus de détails.
    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.

Discussions similaires

  1. accéder au body d'un frame à partir d'un autre frame
    Par ramroum1986 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/10/2011, 15h21
  2. Réponses: 5
    Dernier message: 27/07/2011, 17h56
  3. appel d'une autre frame à partir d'une autre classe
    Par oceane751 dans le forum AWT/Swing
    Réponses: 18
    Dernier message: 19/01/2008, 07h41
  4. mise à jour d'une frame à partir d'une autre frame
    Par youness78 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/07/2007, 15h58
  5. Rafraichissement d'une frame à partir d'une autre
    Par VinceTlse dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/08/2005, 12h18

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