mfuzz_obj_SOL <- mfuzz(mfuzz_input_SOL, c = 2, m = 1.5) Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘exprs’ for signature ‘"matrix"’
时间: 2024-03-11 12:48:57 浏览: 15
这个错误的意思与你之前提到的相同,即R语言无法找到适合于矩阵类型的“exprs”函数的方法。
根据你的代码,我猜测mfuzz_input_SOL是一个矩阵类型的输入参数,而mfuzz()函数需要一个适当的输入参数类型。因此,你可以尝试将矩阵转换为数据框,并将结果传递给mfuzz()函数。例如,你可以使用as.data.frame()函数来转换矩阵:
``` r
mfuzz_obj_SOL <- mfuzz(as.data.frame(mfuzz_input_SOL), c = 2, m = 1.5)
```
这样做的结果是将矩阵转换为数据框,并使用转换后的数据框作为mfuzz()函数的输入参数。
相关问题
> mfuzz_obj_SOL <- mfuzz(as.data.frame(mfuzz_input_SOL), c = 2, m = 1.5) Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘exprs’ for signature ‘"data.frame"’
这个错误的意思与之前相同,R语言无法找到适合于数据框类型的“exprs”函数的方法。
根据你的错误信息,我猜测mfuzz()函数内部使用了exprs()函数来处理输入数据框。因此,你需要将数据框转换为适合exprs()函数的类型。通常,这可以通过使用exprs()函数自带的方法来完成,例如:
``` r
mfuzz_obj_SOL <- mfuzz(ExpressionSet(as.matrix(mfuzz_input_SOL)), c = 2, m = 1.5)
```
这里,我们首先使用as.matrix()函数将输入矩阵转换为适合exprs()函数的类型,然后使用ExpressionSet()函数将结果转换为适合mfuzz()函数的类型。这样做的结果是将矩阵转换为ExpressionSet对象,并使用这个对象作为mfuzz()函数的输入参数。
table(mfuzz_obj_SOL$cluster) mfuzz.plot(mfuzz_obj_SOL, cl = 2)
这个错误可能是由于你的`mfuzz_obj_SOL`对象中实际的聚类数小于你指定的聚类数。你可以再次使用`table()`函数来确保聚类数量的正确性,并根据结果来调整`cl`参数的值。
如果你的聚类数量确实小于2,那么你需要将`cl`参数设置为实际的聚类数,例如:
``` r
mfuzz.plot(mfuzz_obj_SOL, cl = 1)
```
或者,你可以重新运行`mfuzz()`函数,并指定一个更小的聚类数。如果你的聚类数量较少,那么你可能需要使用更小的聚类数来获得更好的聚类结果。