0

我得到了一个已经被前一个用户转换的数据集。当我尝试使用此代码创建/绘制 NMF 时:

multiRankNMF <- nmf(dataset, seq(seq1,seq2), 
                method=usedmethod, nrun=noofrun, 
                seed=initseed, .options = "t")

我不能,因为我收到这些错误:

 Error in (function (...)  : All the runs produced an error:
    -#1 [r=2] -> NMF::nmf - 20/20 fit(s) threw an error.
 Error(s) thrown:
  - run #1: NMF::nmf - Input matrix x contains some negative entries.
    -#2 [r=3] -> NMF::nmf - 20/20 fit(s) threw an error.
 Error(s) thrown:
  - run #1: NMF::nmf - Input matrix x contains some negative entries.
    -#3 [r=4] -> NMF::nmf - 20/20 fit(s) threw an error.
 Error(s) thrown:
  - run #1: NMF::nmf - Input matrix x contains some negative entries.
    -#4 [r=5] -> NMF::nmf - 20/20 fit(s) threw an error.
 Error(s) thrown:
  - run #1: NMF::nmf - Input matrix x contains some negative entries.
    -#5 [r=6] -> NMF::nmf - 20/20 fit(s) threw an error.
 Error(s) thrown:
  - run #1: NMF::nmf - Input matrix x contains some negative entries.
    -#6 [r=7] -> NMF::nmf - 20/20 fit(s) threw an error.

我的想法是,所看到的负值是由于之前使用的转换,因为基因表达数据本质上是非负的。

我将如何撤消已完成的转换以便创建 NMF?

4

1 回答 1

0

假设它实际上只是一个直接的对数转换,答案取决于使用的基数(通常是 e 或 10)。如果它是自然对数(以 e 为底),exp()则可以:

data <- log(1:10)
exp(data)

如果它是以 10 为底,则解决方案是计算数据的 10 次方:

data <- log10(1:10)
10^data
于 2019-11-11T12:11:07.833 回答