我正在 pSI 包中运行 Candidate.overlap 函数,并收到有关行名的错误消息:
> candidate.overlap(pSIs = psI_output, candidate.genes = dat2.1)
Error in `row.names<-.data.frame`(`*tmp*`, value = value) :
duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': ‘C21ORF59’, ‘C6ORF165’
使用相同的 Candidate.genes 列表运行的示例过滤器不会抛出错误消息,所以我知道函数和 dat2.1 不是错误。
> candidate.overlap(pSIs = sample.data$pSI.output, candidate.genes = dat2.1)
$pSi_0.0001
[1] Amygdala.Young.Adulthood_0.0001 Cerebellum.Young.Adulthood_0.0001
[3] Cortex.Young.Adulthood_0.0001 Hippocampus.Young.Adulthood_0.0001
[5] Striatum.Young.Adulthood_0.0001 Thalamus.Young.Adulthood_0.0001
<0 rows> (or 0-length row.names)
通读答案,我使用了带有 unique = TRUE 的 make.names 函数,因为我之前遇到了行名问题,但认为我在这一步之前已经解决了它。我检查了重复的行名:
> anyDuplicated(rownames(psI_output))
[1] 0
> anyDuplicated(rownames(sample.data$pSI.output))
[1] 0
并检查了str:(数据框中有值,它们不都是NA)
> str(psI_output)
'data.frame': 55993 obs. of 12 variables:
$ Adipose...Subcutaneous : num NA NA NA NA NA NA NA NA NA NA ...
$ Artery...Tibial : num NA NA NA NA NA NA NA NA NA NA ...
$ Artery...Aorta : num NA NA NA NA NA NA NA NA NA NA ...
$ Artery...Coronary : num NA NA NA NA NA NA NA NA NA NA ...
$ Colon...Transverse : num NA NA NA NA NA NA NA NA NA NA ...
$ Lung : num NA NA NA NA NA ...
$ Stomach : num NA NA NA NA NA NA NA NA NA NA ...
$ Skin...Sun.Exposed..Lower.leg. : num NA NA NA NA NA NA NA NA NA NA ...
$ Skin...Not.Sun.Exposed..Suprapubic.: num NA NA NA NA NA NA NA NA NA NA ...
$ Nerve...Tibial : num NA NA NA NA NA NA NA NA NA NA ...
$ Muscle...Skeletal : num NA NA NA NA NA NA NA NA NA NA ...
$ Whole.Blood : num NA NA NA NA NA ...
R的标题是否有问题,例如皮肤重复两次,然后是...?或者有没有办法检测错误发生在哪里?任何帮助表示赞赏。科学