gpt4 book ai didi

r - 为什么 scale 为零方差列返回 NaN?

转载 作者:行者123 更新时间:2023-12-01 07:10:55 27 4
gpt4 key购买 nike

考虑以下矩阵:

x <- matrix(c(1,1,1,3),2)
x
[,1] [,2]
[1,] 1 1
[2,] 1 3

打电话时 scale有了这个, NaN返回第一列的值,该列的方差为零:
scale(x)
[,1] [,2]
[1,] NaN -0.7071068
[2,] NaN 0.7071068
attr(,"scaled:center")
[1] 1 2
attr(,"scaled:scale")
[1] 0.000000 1.414214

但是,我希望它返回 0 .这是一个错误还是我误解了这是什么并且应该返回?

我想要的解决方法是:
y <- scale(x)
y[is.nan(y)] <- 0

但这涉及到额外变量的使用,有没有更优雅的解决方案?

最佳答案

因为 scale除以方差,它必须这样做。

连续变量真的不应该有联系,更不用说零方差,并且不适合缩放离散或分类变量。

关于r - 为什么 scale 为零方差列返回 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15363610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com