3

我安装umap-learnmac OS尝试使用此处解释的方式在r markdown文件中使用它:rPython

http://blog.schochastics.net/post/using-umap-in-r-with-rpython/#fn1

但是当我运行以下代码时:

```{r}
umap <- function(x,n_neighbors=10,min_dist=0.1,metric="euclidean"){
  x <- as.matrix(x)
  colnames(x) <- NULL
  rPython::python.exec( c( "def umap(data,n,mdist,metric):",
              "\timport umap" ,
              "\timport numpy",
              "\tembedding = umap.UMAP(n_neighbors=n,min_dist=mdist,metric=metric).fit_transform(data)",
              "\tres = embedding.tolist()",
              "\treturn res"))

  res <- rPython::python.call( "umap", x,n_neighbors,min_dist,metric)
  do.call("rbind",res)
}

data(iris)
res <- umap(iris[,1:4])
```

我得到错误:

python.exec(python.command) 中的错误:没有名为 umap 的模块

所以,显然Rstudio没有看到umap。我检查了该软件包是由以下人员安装的conda list

umap-learn                0.2.3                    py36_0    conda-forge

我怎么能解决这个问题?

更新

python的版本错误,所以我添加.Rprofile并使其指向正确的版本,但是错误仍然存​​在。

system("python --version")
Python 3.6.5 :: Anaconda, Inc.

更新

更详细的错误(堆栈跟踪):

 Error in python.exec(python.command) : No module named umap
 4.stop(ret$error.desc)
 3.python.exec(python.command)
 2.rPython::python.call("umap", x, n_neighbors, min_dist, metric)
 1.umap(iris[, 1:4])
4

1 回答 1

1

您需要确保它umap可用于 R 中使用的相同 Python,默认情况下它不会是您的 Anaconda 安装。

您可以检查您的 Python,system("python --version")如果需要,请cmd在线执行pip install umappip3 install umap等(使用当前可用的 Python;或者,您可以将 Python 路径切换到您的 Anaconda Python)。

于 2018-05-03T18:23:39.193 回答