这令我感到困惑.当您对整数向量运行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
Run Code Online (Sandbox Code Playgroud)
对于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
Run Code Online (Sandbox Code Playgroud)
为什么这些结果不同?
对象a是类integer,b就是类data.frame。Adata frame是list具有某些属性和类的data.frame( http://cran.r-project.org/doc/manuals/R-intro.html#Data-frames )。许多函数,包括summary,以不同的方式处理不同类的对象(请注意,您可以summary在类的对象上使用lm它,它会为您提供完全不同的东西)。如果您想将该功能应用于summary中的每个组件b,您可以使用lapply:
> a <- 0:628846\n> b <- data.frame(b = 0:628846)\n> class(a)\n[1] "integer"\n> class(b)\n[1] "data.frame"\n> names(b)\n[1] "b"\n> length(b)\n[1] 1\n> summary(b[[1]]) # b[[1]] gives the first component of the list b\n Min. 1st Qu. Median Mean 3rd Qu. Max. \n 0 157200 314400 314400 471600 628800 \n> class(b$b)\n[1] "integer"\n> summary(b$b)\n Min. 1st Qu. Median Mean 3rd Qu. Max. \n 0 157200 314400 314400 471600 628800 \n> lapply(b,summary)\n$b\n Min. 1st Qu. Median Mean 3rd Qu. Max. \n 0 157200 314400 314400 471600 628800 \n> \n> # example of summary on a linear model\n> x <- rnorm(100)\n> y <- x + rnorm(100)\n> my.lm <- lm(y~x)\n> class(my.lm)\n[1] "lm"\n> summary(my.lm)\n\nCall:\nlm(formula = y ~ x)\n\nResiduals:\n Min 1Q Median 3Q Max \n-2.6847 -0.5460 0.1175 0.6610 2.2976 \n\nCoefficients:\n Estimate Std. Error t value Pr(>|t|) \n(Intercept) 0.04122 0.09736 0.423 0.673 \nx 1.14790 0.09514 12.066 <2e-16 ***\n---\nSignif. codes: 0 \xe2\x80\x98***\xe2\x80\x99 0.001 \xe2\x80\x98**\xe2\x80\x99 0.01 \xe2\x80\x98*\xe2\x80\x99 0.05 \xe2\x80\x98.\xe2\x80\x99 0.1 \xe2\x80\x98 \xe2\x80\x99 1 \n\nResidual standard error: 0.9735 on 98 degrees of freedom\nMultiple R-squared: 0.5977, Adjusted R-squared: 0.5936 \nF-statistic: 145.6 on 1 and 98 DF, p-value: < 2.2e-16\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |