Использование функции 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])
}