Использование функции Meta() с переменной в цикле: Ошибка не может найти унаследованный метод для функции?

Я пытаюсь извлечь одно значение из метаданных файла GSM .soft. Я могу сделать это без ошибок, используя Meta(GSM971958)$characteristics_ch1[3], но я получаю сообщение об ошибке при попытке выполнить команду того же типа с переменной через цикл. Я не понимаю, почему первый работает хорошо, а второй нет.

Вот мой полный код с сообщением об ошибке:

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"’

1 ответ

Решение

Мне нужно было вернуться через getGEO(), хотя я уже импортировал данные:

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])
}
Другие вопросы по тегам