R语言 下载TCGA数据后运行GDCprepare()函数报错

R语言下载完TCGA数据时,运行GDCprepare()函数,报错
代码如下:

BRCA_methy <- GDCquery(
  project = "TCGA-BRCA", 
  data.category = "DNA Methylation", 
  data.type = "Methylation Beta Value",
  platform = "Illumina Human Methylation 450" 
)

GDCdownload(BRCA_methy)
GDCprepare(BRCA_methy,save = T,save.filename="BRCA_METHY_beta.Rdata")

报错内容为:

Error in fread(f, header = TRUE, sep = "\t", stringsAsFactors = FALSE,  : 
  colClasses =是类型为5的类型的未命名向量,但是有2输入中的列。要为列的子集指定类型,可以使用命名向量,列表格式或使用select=而不是colClasses=。请参阅'?fread'中的示例。
Error in if (value == n) { : argument is of length zero

请问该怎么解决?

这个错误提示表明在执行GDCprepare()函数时,内部调用了fread()函数,但是fread()函数在解析数据时出现了问题。具体地,colClasses参数中指定的列类型与实际数据列数不符。

根据错误提示,你需要为colClasses参数指定一个命名向量、列表格式或使用select=而不是colClasses=。可以将colClasses参数替换为select参数来解决这个问题,如下所示:

BRCA_methy <- GDCquery(
  project = "TCGA-BRCA", 
  data.category = "DNA Methylation", 
  data.type = "Methylation Beta Value",
  platform = "Illumina Human Methylation 450" 
)
 
GDCdownload(BRCA_methy)
GDCprepare(BRCA_methy, save = T, save.filename = "BRCA_METHY_beta.Rdata", select = NULL)


这里我们将select参数设置为NULL,这将使GDCprepare()函数自动选择合适的列类型。如果需要指定特定的列类型,可以按照fread()函数的建议,使用命名向量或列表格式进行指定。具体使用方法可以参考?fread中的例子。