如何计算arcsin(sgn(x)√| x |)?

时间:2012-07-23 21:41:23

标签: r transformation

我正在尝试使用[-1,1]上的平方根数据。在尝试对负数据点进行平方根时,使用transf.arcsine包中的metafor会产生NaNs。从概念上讲,我想使用arcsin(sgn(x)√|x|),即将绝对值平方,应用其先前的符号,然后使用反正弦变换它。问题是我不知道如何在R中开始这样做。帮助将不胜感激。

3 个答案:

答案 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

接下来应用平方根函数sq​​rt():

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)