R:产生的 NaN
R: NaNs produced
我在 R Studio 中有一个时间序列。现在我想计算这个系列的 log() 。我尝试了以下方法:
i <- (x-y)
ii <- log(i)
但后来我得到以下信息:Warning message: In log(i): NaNs produced
为了检查这个,我使用了:table(is.nan(ii))
,它给了我以下输出:
FALSE TRUE
2480 1
所以我假设,现在我的时间序列中有 1 个 NaN。我的问题是:我可以使用什么代码,让 R 向我显示生成 NaN 的观察结果?
这是一个小数据样本:i <- c(9,8,4,5,7,1,6,-1,8,4)
顺便说一句,我如何在 Whosebug 中输入数学公式,例如 log(x)?非常感谢
正如我在评论中所说,要知道哪个观察生成了 NaN
,您可以使用函数 which
:
i <- c(9,8,4,5,7,1,6,-1,8,4)
which(is.nan(log(i))) # 8
使用测试将原始向量与产生 NaN 的值进行子集化:
> i <- c(9,8,4,5,-7,1,6,-1,8,4,Inf,-Inf,NA)
> i[which(is.nan(log(i)))]
[1] -7 -1 -Inf
Warning message:
In log(i) : NaNs produced
在这里你看到 -7、-1 和 -Inf
产生了 NaN
。
请注意 log(NA)
不是 NaN
,它是 NA
,这是一种不同的非数字性。
我在 R Studio 中有一个时间序列。现在我想计算这个系列的 log() 。我尝试了以下方法:
i <- (x-y)
ii <- log(i)
但后来我得到以下信息:Warning message: In log(i): NaNs produced
为了检查这个,我使用了:table(is.nan(ii))
,它给了我以下输出:
FALSE TRUE
2480 1
所以我假设,现在我的时间序列中有 1 个 NaN。我的问题是:我可以使用什么代码,让 R 向我显示生成 NaN 的观察结果?
这是一个小数据样本:i <- c(9,8,4,5,7,1,6,-1,8,4)
顺便说一句,我如何在 Whosebug 中输入数学公式,例如 log(x)?非常感谢
正如我在评论中所说,要知道哪个观察生成了 NaN
,您可以使用函数 which
:
i <- c(9,8,4,5,7,1,6,-1,8,4)
which(is.nan(log(i))) # 8
使用测试将原始向量与产生 NaN 的值进行子集化:
> i <- c(9,8,4,5,-7,1,6,-1,8,4,Inf,-Inf,NA)
> i[which(is.nan(log(i)))]
[1] -7 -1 -Inf
Warning message:
In log(i) : NaNs produced
在这里你看到 -7、-1 和 -Inf
产生了 NaN
。
请注意 log(NA)
不是 NaN
,它是 NA
,这是一种不同的非数字性。