我有两个矩阵,pt1和pt2,示例如下:
pt1[1,] = 9.819 1.839 1.542 1.236 1.137 0.774 0.774 0.608 0.527 0.327 0.324 0.245 0.133 0.111 0.110 0.067 0.038 0.018 0.007 0.002 0.000 0.000
pt2[1,] = 9.9770359 1.8361173 1.6109915 1.2507719 1.0475069 0.7834792 0.7832150 0.6610241 0.5318586 0.3857874 0.3084728 0.2700538 0.1439364 0.1220980 0.1056596 0.0679037 0.0373881 0.0220959 0.0068046 0.0018711 0.0000000 0.0000000
我必须执行这样的日志操作:
rt2 <- log(pt2/pt1)*0.5
然而,正如预期的那样,最后两个值将产生NaN,因为pt1值为零(除以零)。这显示了一个警告:
Warning message:
In log(pt2/pt1) : NaNs produced
我使用ifelse
来纠正(并期望它删除警告):
r2 <- ifelse(pt1==0 | pt2==0, 0, log(pt2/pt1)*0.5)
不再生产NaN,但仍会显示警告。
我该怎么做以避免警告?
谢谢!
答案 0 :(得分:0)
以下是使用下标的一种方法:
<div class="tabs">
<span class="tab">
<input type="radio" name="ch" id="check1">
<label for="check1">
Tab 1
</label>
</span>
<span class="tab">
<input type="radio" name="ch" id="check2">
<label for="check2">
Tab 2
</label>
</span>
<span class="tab">
<input type="radio" name="ch" id="check3">
<label for="check3">
Tab 3
</label>
</span>
</div>
<div class="contents">
<div class="content" id="tab1">Contenido 1</div>
<div class="content" id="tab2"><strong>Contenido 2</strong></div>
<div class="content" id="tab3"><em>Contenido 3</em></div>
</div>
答案 1 :(得分:0)
您可以使用suppressWarnings()
:
pt1 <- matrix(rnorm(2200), nrow = 100)
pt2 <- matrix(rnorm(2200), nrow = 100)
rt2 <- suppressWarnings(log(pt2/pt1)*0.5)
head(rt2[,1:5],2)
[,1] [,2] [,3] [,4] [,5]
[1,] -0.1209207 0.8211299 NaN -0.3271424 NaN
[2,] -0.3916372 NaN NaN NaN 1.1085
rt2[is.na(rt2)] <- 0
head(rt2[,1:5],2)
[,1] [,2] [,3] [,4] [,5]
[1,] -0.1209207 0.8211299 0 -0.3271424 0.0000
[2,] -0.3916372 0.0000000 0 0.0000000 1.1085
我希望这会有所帮助。