按 M3C 包聚类:`[.data.frame`(df, neworder2) 中的错误:选择了未定义的列

Clustering by M3C package : Error in `[.data.frame`(df, neworder2) : undefined columns selected

我遇到了与发布 here 类似的问题。要解决此问题,请按照@Jack Gisby 的回答进行操作。现在出现了一个新错误:

处理 TCGA 数据时,我遇到了同样的错误(第一个错误):

Error in `.rowNamesDF<-`(x, value = value) : 
  duplicate 'row.names' are not allowed

运行 duplicated() 在返回的每个相关字段上 FALSE

她是第二个错误(就在修剪标识符后不以像“TCGA-”这样的常见字符串开头):

Error in `[.data.frame`(df, neworder2) : undefined columns selected
> traceback()
5: stop("undefined columns selected")
4: `[.data.frame`(df, neworder2)
3: df[neworder2]
2: M3Creal(as.matrix(mydata), maxK = maxK, reps = repsreal, pItem = pItem, 
       pFeature = 1, clusterAlg = clusteralg, distance = distance, 
       title = "/home/christopher/Desktop/", des = des, lthick = lthick, 
       dotsize = dotsize, x1 = pacx1, x2 = pacx2, seed = seed, removeplots = removeplots, 
       silent = silent, fsize = fsize, method = method, objective = objective)
1: M3C(pro.vst, des = clin, removeplots = FALSE, iters = 25, objective = "PAC", 
       fsize = 8, lthick = 1, dotsize = 1.25)

我已经添加到 M3C 上的一个未解决的问题中 GitHub。

我在 运行 M3C 时遇到了与 Hamid Ghaedi 相同的错误。我设法追踪到以下代码行(M3C.R 文件的第 476 行):

df <- data.frame(m_matrix)

我的许多示例名称(列名)都以数字开头,data.frame() 函数在每个以数字开头的名称的开头添加了一个“X”(“1”变为“ X1”)。这导致与 neworder2 中列出的名称不匹配。

为了解决这个问题,我将所有样本名称更改为以字母开头,M3C 现在 运行 正确。

编辑:通过在 运行 M3C 之前对输入数据集使用 data.frame() 函数,可以轻松应用此解决方法。