r - 总结方法结果对于向量似乎不准确

标签 r

这让我很困惑。当您对整数向量运行 summary() 时,您似乎无法获得准确的结果。数字似乎四舍五入。我在具有不同操作系统的三台不同机器上尝试了这个,结果是一样的。

对于向量:

>a <- 0:628846
>str(a)
 int [1:628847] 0 1 2 3 4 5 6 7 8 9 ...
>summary(a)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      0  157200  314400  314400  471600  628800 
>max(a)
[1] 628846

对于 data.frame:
> b <- data.frame(b = 0:628846)
> str(b)
'data.frame':   628847 obs. of  1 variable:
 $ b: int  0 1 2 3 4 5 6 7 8 9 ...
> summary(b)
       b         
 Min.   :     0  
 1st Qu.:157212  
 Median :314423  
 Mean   :314423  
 3rd Qu.:471635  
 Max.   :628846  
> summary(b$b)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      0  157200  314400  314400  471600  628800 

为什么这些结果不同?

最佳答案

对象 a是类(class)integer , b是类(class)data.frame .一个 data framelist具有某些属性和类 data.frame ( http://cran.r-project.org/doc/manuals/R-intro.html#Data-frames )。许多功能,包括summary , 以不同的方式处理不同类的对象(请参阅您可以在类 summary 上使用 lm ,它会给您完全不同的东西)。如果您想应用功能 summaryb 中的每个组件,您可以使用 lapply :

> a <- 0:628846
> b <- data.frame(b = 0:628846)
> class(a)
[1] "integer"
> class(b)
[1] "data.frame"
> names(b)
[1] "b"
> length(b)
[1] 1
> summary(b[[1]]) # b[[1]] gives the first component of the list b
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      0  157200  314400  314400  471600  628800 
> class(b$b)
[1] "integer"
> summary(b$b)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      0  157200  314400  314400  471600  628800 
> lapply(b,summary)
$b
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      0  157200  314400  314400  471600  628800 
> 
> # example of summary on a linear model
> x <- rnorm(100)
> y <- x + rnorm(100)
> my.lm <- lm(y~x)
> class(my.lm)
[1] "lm"
> summary(my.lm)

Call:
lm(formula = y ~ x)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.6847 -0.5460  0.1175  0.6610  2.2976 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.04122    0.09736   0.423    0.673    
x            1.14790    0.09514  12.066   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.9735 on 98 degrees of freedom
Multiple R-squared: 0.5977, Adjusted R-squared: 0.5936 
F-statistic: 145.6 on 1 and 98 DF,  p-value: < 2.2e-16

关于r - 总结方法结果对于向量似乎不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11016089/

相关文章:

在 R 函数中返回多个对象

r - 根据行数将 xlsx 文件拆分为小文件

r - 为什么 "dnorm"不是总计为 1 的概率?

r - 如何将 xtabs() 的结果转换为 R 中的数据框?

R 返回第一个下划线后的所有字符

r - plot() 上的替代单位

r - 在 OS X 上分析 Rcpp 代码

r - 分别为带状图中的每个数据点定义颜色

r - 如何使用 dplyr 删除 R 中包含特定位数的数据集列的值?

r - 斯 PIL 曼相关性和联系