R: wartości pól dostępu


Chciałbym wiedzieć, w jaki sposób mogę uzyskać dostęp do poszczególnych pól zawartych w obiekcie R. A dokładniej, jak uzyskać R, aby powiedzieć mi, jak to zrobić.
Na przykład, jeśli wykonam następujący kod:
dx.ct <- ur.df(dat1[,'dx'], lags=3, type='trend')
summary(dx.ct)

wtedy otrzymuję ten wynik:
############################################### 
# Augmented Dickey-Fuller Test Unit Root Test #
############################################### Test regression trend
Call:
lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)Residuals:
Min 1Q Median 3Q Max
-0.46876 -0.24506 0.02420 0.15752 0.66688 Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.099231 0.561377 1.958 0.0606 .
z.lag.1 -0.239438 0.141093 -1.697 0.1012
tt -0.019831 0.007799 -2.543 0.0170 *
z.diff.lag1 -0.306326 0.193001 -1.587 0.1241
z.diff.lag2 -0.214229 0.186135 -1.151 0.2599
z.diff.lag3 -0.223433 0.179040 -1.248 0.2228
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.3131 on 27 degrees of freedom
Multiple R-squared: 0.3326, Adjusted R-squared: 0.209
F-statistic: 2.691 on 5 and 27 DF, p-value: 0.04244
Value of test-statistic is: -1.697 2.4118 3.2358 Critical values for test statistics:
1pct 5pct 10pct
tau3 -4.15 -3.50 -3.18
phi2 7.02 5.13 4.31
phi3 9.31 6.73 5.61

Tak więc wiem, że powinienem mieć dostęp do wszystkich powyższych wartości indywidualnie, ale nie wiem, jak je wskazać. Czy jest jakiś sposób, aby poprosić R o pokazanie mi, jak są przechowywane?
Myślę, że coś takiego:
showobjects(summary(dx.ct))

A potem wychodzi
$formula
$residuals
$coefficients
etc.

i wtedy mogę to zrobić
showobjects(summary(dx.ct)$residuals)

który następnie wyświetla
$min
$1Q
$median
etc.

podziękować

Charles
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Aby uzyskać inną alternatywę, spójrz na
atrybuty
.
example(ur.df)
attributes(lc.df) #lc.df is an ur.df object created during by example.$y
[1] 10.4831 10.4893 10.5022 10.5240 10.5329 10.5586 10.5190 10.5381
[9] 10.5422 10.5361 10.5462 10.5459 10.5552 10.5548 10.5710 10.5861
[17] 10.5864 10.5802 10.6006 10.6168 10.6275 10.6414 10.6629 10.6758
[25] 10.6881 10.7240 10.7143 10.7222 10.7156 10.6964 10.6990 10.7081
[33] 10.7142 10.7078 10.7073 10.6954 10.6910 10.6967 10.7015 10.7083
[41] 10.7127 10.6922 10.6874 10.6989 10.7224 10.7452 10.7462 10.7663
[49] 10.7633 10.7737 10.8282 10.7872 10.8015 10.8139 10.7909 10.8029
[57] 10.7868 10.7979 10.8007 10.8008 10.7991 10.7956 10.8005 10.8160
[65] 10.8260 10.8405 10.8482 10.8633 10.8633 10.8615 10.8732 10.8649
[73] 10.8793 10.8909 10.8938 10.9116 10.9202 10.9409 10.9663 10.9700
[81] 10.9808 10.9878 11.0048 11.0272 11.0420 11.0701 11.0751 11.0964
[89] 11.1069 11.1123 11.1231 11.1223 11.1303 11.1307 11.1389 11.1325
[97] 11.1261 11.1232 11.1220$model
[1] "trend"$lags
[1] 3# etc.

Jeśli nie chcesz pełnego wyjścia,
nazwy (atrybuty (lc.df))
zwraca tylko, um, nazwy.
[1] "y" "model" "lags" "cval" "res" "teststat" "testreg" "test.name" "class"
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Oprócz
unclass ()
spróbuj
str ()
. Lub przeczytaj kod źródłowy, aby zobaczyć, jak robią to inne metody dostępu.

Edit:

na przykład tutaj jest kod źródłowy metody
summary
klasy S4 dla oglądanego obiektu
ur.df
:
setMethod("summary", "ur.df", function(object){
return(new("sumurca", classname="ur.df", test.name=object@test.name,\
testreg=object@testreg, teststat=object@teststat, cval=object@cval, \
bpoint=NULL, signif=NULL, model=object@model, type=NULL, auxstat=NULL, \
lag=NULL, H=NULL, A=NULL, lambda=NULL, pval=NULL, V=NULL, W=NULL, P=NULL))
})

i używa standardowego akcesora
@
dla elementów obiektów S4.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jedyne, co możesz zrobić, to użyć
unclass ()
.
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
anova(lm.D9 <- lm(weight ~ group))
s <- summary(lm.D90 <- lm(weight ~ group - 1))

Użyj nazw, aby to zbadać:
> names(unclass(s))
[1] "call" "terms" "residuals" "coefficients" "aliased" "sigma" "df" "r.squared" "adj.r.squared"
[10] "fstatistic" "cov.unscaled"

A następnie odnieś się do określonej wartości:
> s$r.squared
[1] 0.9817833
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz uzyskać określoną wartość pola przez @ Dla tej klasy typu S4, jak wspomniał Dirk Eddelbuettel.
summary(dx.ct)@teststat tau3 phi2 phi3
statistic -1.668368 0.9731316 1.444461summary(dx.ct)@cval1pct 5pct 10pct
tau3 -3.96 -3.41 -3.12
phi2 6.09 4.68 4.03
phi3 8.27 6.25 5.34

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się