我正在尝试运行 Mann-Whiteney-U test使用以下代码:
package main
import (
"fmt"
"stats"
)
func main() {
e, _ = MannWhitneyUTest([]float64{1, 2, 3, 4, 5},
[]float64{1, 2, 3, 5, 6},
0)
fmt.Println("Mann-WhitneyUTest: ", e)
}
但是,这给了我这个错误:
$ go run mainstats2.go
mainstats2.go:5:2: cannot find package "stats" in any of:
/usr/local/go/src/stats (from $GOROOT)
/home/iuser/go/src/stats (from $GOPATH)
我安装了以下统计包:
$ go list all | grep stats
github.com/montanaflynn/stats
github.com/montanaflynn/stats/examples
golang.org/x/perf/internal/stats
golang.org/x/perf/vendor/github.com/aclements/go-moremath/stats
golang.org/x/perf/vendor/google.golang.org/grpc/stats
我需要通过命令安装的统计包 golang.org/x/perf/:go get golang.org/x/perf/internal/stats
我相信这个包已经在 go 安装中了,不需要单独安装。
我该如何解决这个问题?感谢您的帮助。
最佳答案
出现错误是因为你的导入路径不正确,应该是:
import (
"fmt"
"golang.org/x/perf/internal/stats"
)
但即使导入路径问题已解决,您仍会得到另一个 error for trying to use internal package .
stats.go:4:5: use of internal package golang.org/x/perf/internal/stats not allowed
我建议尝试寻找另一个替代库。
编辑#1:
如果您坚持,有一个解决方法。尝试将 $GOPATH/src/golang.org/x/perf/internal/stats
文件夹直接复制到您的项目中,然后将其导入。成功了,请看下面的截图。
编辑 2:
I have copied the folder to ~/go/src/stats. It is still not working. What should I put for import. Currently it is just "stats"
我认为你做错了。首先,您需要创建所谓的项目,它是一个位于$GOPATH/src
中的文件夹。
例如,在下图中,我创建了一个名为 my-example-app
的项目,该项目位于 $GOPATH/src
下。所以项目的完整路径将是$GOPATH/src/my-example-app
。
在我的项目中,我创建了 main.go
文件。此文件包含代码(我从您的文件中复制)。
此外,我将 $GOPATH/src/golang.org/x/perf/internal/stats
文件夹复制到我的项目中,因此 stats
文件夹将打开与我的 main.go
相同级别。
stats
文件夹的导入需要相对于项目名称进行,因此正确的导入路径为:
import "my-example-app/stats"
这是我的 main.go
的内容(从你的复制而来,添加了一些语法错误修复)。
package main
import (
"fmt"
"my-example-app/stats"
)
func main() {
e, _ := stats.MannWhitneyUTest([]float64{1, 2, 3, 4, 5},
[]float64{1, 2, 3, 5, 6},
0)
fmt.Println("Mann-WhitneyUTest: ", e)
}
关于go - 如何使用 go 内部包中的统计函数 (MannWhitneyUTest),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57228795/