5

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

4

3 回答 3

14
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)
于 2012-07-23T22:29:25.707 回答
4

R 中的帮助只是help()or help.search()。所以,让我们试试显而易见的,

> help(arcsin)
No documentation for ‘arcsin’ in specified packages and libraries:

好吧,那不好。但它必须能够触发......让我们尝试一些更简单的东西。

help(sin)

有所有的三角函数。我注意到,Math页面上有一个链接。单击似乎可以提供您需要的所有功能。原来我本来可以打字的。。

help(Math)

还,

help.search('trigonometry')
于 2012-07-23T21:52:07.740 回答
0

我有一个类似的问题。我想对大部分数据集“logmeantd.ascvr”进行反正弦变换并以这种方式接近它:

首先是数据范围已转换为 b/t -1 和 1(在这种情况下,它们以百分比表示):

logmeantd.ascvr[1:12] <- logmeantd.ascvr[1:12] * 0.01

接下来应用平方根函数 sqrt():

logmeantd.ascvr[1:12] <- sqrt(logmeantd.ascvr[1:12])

最后应用反正弦函数 asin():

logmeantd.ascvr[1:12] <- asin(logmeantd.ascvr[1:12])

*注意,在这种情况下,我排除了数据集的 MEAN 变量,因为我想对其应用日志函数 log():

 logmeantd.ascvr$MEAN <- log(logmeantd.ascvr$MEAN)
于 2012-08-22T10:56:02.657 回答