R矩阵返回0&s和NA的数量而不是统计数据

时间:2016-08-02 14:25:55

标签: r matrix na summary

我有四个3d矩阵:sliced_q2m.Rdatasliced_ubot.Rdatasliced_vbot.Rdata [256,128,360]NA。前两个矩阵混合了实数和NA,最后两个矩阵都是实数。但是,当我尝试使用以下方法获取包含两个summary(sliced_q2m.Rdata) summary(sliced_qbot.Rdata) 矩阵的摘要统计信息时:

min=0 q1=0 med=0 mean=0 q3=0 max=0, NA's =7212960

它为

返回summary(sliced_ubot.Rdata)

summary(sliced_vbot.Rdata)$("#mybutton").on("click", function () { alert("Hey"); }); 没有任何NA值并返回实际摘要。我不确定为什么摘要不适用于具有NA值的两个矩阵,但它适用于没有NA值的两个矩阵。

2 个答案:

答案 0 :(得分:1)

DOH!好的,所以我只需要增加显示的位数。我的大多数数据都是小数字,所以我应该意识到我需要更多的数字空间。

> summary(sliced_q2m) <select class="form-control" ng-options="item for item in ['R','W']" ng-model="singleRegister.RW" ng-change="modbusChange(modbusDetailsEdit)"> </select> 会返回实际摘要

Min.1st Qu。中位数 2.6467755999999998e-06 5.5907318890000002e-04 3.2247315394000001e-03 4.8551256022999999e-03                第三曲。最大。 NA的 6.6539720865000001e-03 2.3001585155700000e-02 7212960

感谢您的帮助!

答案 1 :(得分:0)

我建议这是因为显示四舍五入。

set.seed(42)
rndm <- rexp(10000, 1e8)
summary(rndm)
#      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
# 1.950e-12 2.876e-09 6.887e-09 1.007e-08 1.413e-08 1.058e-07 
summary(matrix(rndm, ncol = 2))
#        V1                  V2           
#  Min.   :1.950e-12   Min.   :2.720e-12  
#  1st Qu.:2.946e-09   1st Qu.:2.811e-09  
#  Median :6.967e-09   Median :6.823e-09  
#  Mean   :1.023e-08   Mean   :9.896e-09  
#  3rd Qu.:1.417e-08   3rd Qu.:1.408e-08  
#  Max.   :8.462e-08   Max.   :1.058e-07  

注入单个NA以触发略微不同的显示逻辑:

summary(matrix(c(NA, rndm[-1]), ncol = 2))
#        V1              V2           
#  Min.   :0e+00   Min.   :2.720e-12  
#  1st Qu.:0e+00   1st Qu.:2.811e-09  
#  Median :0e+00   Median :6.823e-09  
#  Mean   :0e+00   Mean   :9.896e-09  
#  3rd Qu.:0e+00   3rd Qu.:1.408e-08  
#  Max.   :1e-07   Max.   :1.058e-07  
#  NA's   :1                          

你可以稍微潜水一下,看看第一栏:

summary(matrix(c(NA, rndm[-1]), ncol = 2)[,1])
#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
#   0e+00   0e+00   0e+00   0e+00   0e+00   1e-07       1 

直到

仍然看起来都是零
str(summary(matrix(c(NA, rndm[-1]), ncol = 2)[,1]))
# Classes 'summaryDefault', 'table'  Named num [1:7] 1.95e-12 2.95e-09 6.97e-09 1.02e-08 1.42e-08 ...
#   ..- attr(*, "names")= chr [1:7] "Min." "1st Qu." "Median" "Mean" ...

表明实际的统计数据只是非常小的数字,并且为了显示目的而舍入。

您还可以通过以下方式确认这是一个显示舍入问题:

options(digits=15)
summary(matrix(c(NA, rndm[-1]), ncol = 2))
#        V1                      V2                   
#  Min.   :1.9490000e-12   Min.   :2.71670054640e-12  
#  1st Qu.:2.9464250e-09   1st Qu.:2.81112083154e-09  
#  Median :6.9705950e-09   Median :6.82337492704e-09  
#  Mean   :1.0235797e-08   Mean   :9.89606947511e-09  
#  3rd Qu.:1.4169548e-08   3rd Qu.:1.40828140108e-08  
#  Max.   :8.4623358e-08   Max.   :1.05845029551e-07  
#  NA's   :1