2017-06-08 6 views
0

J'essaie d'extraire une seule valeur à partir des métadonnées d'un fichier GSM .soft. Je peux le faire sans erreur en utilisant Meta(GSM971958)$characteristics_ch1[3], mais j'obtiens une erreur en essayant d'exécuter ce même type de commande avec une variable via une boucle. Je ne comprends pas pourquoi le premier fonctionne bien, mais ce dernier ne fonctionne pas.Utilisation de la fonction Meta() avec une variable dans la boucle: Erreur impossible de trouver une méthode héritée pour la fonction?

Voici mon code complet avec le message d'erreur:

library(Biobase) 
library(GEOquery) 

for (i in 971958:972456){ 
    GSMName <- paste("GSM", i, sep = "") 

    if(Meta(GSMName)$characteristics_ch1[1]!="dataset: discovery"){ 
    next 
    } 
    print(Meta(GSMName)$characteristics_ch1[3]) 
} 


    ##Error in (function (classes, fdef, mtable) : 
      unable to find an inherited method for function ‘Meta’ for signature ‘"character"’ 

Répondre

0

je devais passer à travers GETGEO() même si je dure déjà importé les données:

library(Biobase) 
library(GEOquery) 

for (i in 971958:972456){ 
    GSMName <- paste("GSM", i, sep = "") 
    GSM <- getGEO(GSMName, destdir=".") 
    if(Meta(GSM)$characteristics_ch1[1]!="dataset: discovery"){ 
    next 
    } 
    print(Meta(GSM)$characteristics_ch1[3]) 
}