我正在尝试使用[-1,1]
上的平方根数据。在尝试对负数据点进行平方根时,使用transf.arcsine
包中的metafor
会产生NaNs
。从概念上讲,我想使用arcsin(sgn(x)√|x|)
,即将绝对值平方,应用其先前的符号,然后使用反正弦变换它。问题是我不知道如何在R中开始这样做。帮助将不胜感激。
答案 0 :(得分:13)
x <- seq(-1, 1, length = 20)
asin(sign(x) * sqrt(abs(x)))
或作为一种功能
trans.arcsine <- function(x){
asin(sign(x) * sqrt(abs(x)))
}
trans.arcsine(x)
答案 1 :(得分:4)
R中的帮助只是help()
或help.search()
。所以,让我们尝试一下显而易见的,
> help(arcsin)
No documentation for ‘arcsin’ in specified packages and libraries:
好的,那不好。但它必须能够触发......让我们尝试一些更简单的东西。
help(sin)
有所有三角函数。我注意到,页面上有Math
的链接。点击它似乎提供了您需要的所有功能。事实证明我可以输入..
help(Math)
另外,
help.search('trigonometry')
答案 2 :(得分:0)
我有类似的问题。我想反正变换大部分数据集&#34; logmeantd.ascvr&#34; &安培;以这种方式接近它:
首先是数据范围已被转换为b / t -1和1(在这种情况下它们表示为百分比):
logmeantd.ascvr[1:12] <- logmeantd.ascvr[1:12] * 0.01
接下来应用平方根函数sqrt():
logmeantd.ascvr[1:12] <- sqrt(logmeantd.ascvr[1:12])
最后应用arc正弦函数,asin():
logmeantd.ascvr[1:12] <- asin(logmeantd.ascvr[1:12])
*注意在这个例子中我排除了我的数据集的MEAN变量,因为我想对它应用一个日志函数,log():
logmeantd.ascvr$MEAN <- log(logmeantd.ascvr$MEAN)