我有年薪的数据。总结:
Min:61915
中位数:102499
平均值:107973 Max:218071
我想将arcsin转换应用于此数据。在R中,安装了metafor包,我运行:
transf.arcsin(annsal)
但是收到以下错误消息:
> transf.arcsin(wages$annsal)
[1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[21] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[41] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[61] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[81] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[101] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[121] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[141] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[161] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Warning message:
In asin(sqrt(xi)) : NaNs produced
我知道arcsin(x)的域是(-1,1)。有没有办法让我转换年薪数据,以便可以输入R中的arcsin转换?
答案 0 :(得分:0)
你不能只进行简单的缩放转换吗?
由于您不希望精确到-1或+1的值,您可以将范围的最大值和最小值偏移适合您的一些小的正数量,例如eps(epsilon)= .0001
salaries <- rnorm(100,0,1)
y <- range(salaries)
eps = .0001
z <- (salaries - (y[1] - eps) ) * 2 / ( (y[2] + eps) - (y[1] - eps)) - 1
z为您提供比例[-1到1]
的数据或者,如果您准备放下最小值和最大值[根据上述变换将为+1和-1](它们可能也可能不是唯一的最小值和最大值),您可以做更多简单的情况
z <- (salaries - y[1] ) * 2 / ( y[2] - y[1]) - 1