在循环中使用带有变量的 Meta() 函数:找不到函数的继承方法时出错?

Using Meta() function with variable in loop: Error unable to find an inherited method for function?

我正在尝试从 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"’

我需要通过 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])
}