Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Témata - mikrom

Stran: [1]
1
Vývoj / Čo znamená v R atribut triedy v structure()?
« kdy: 12. 01. 2024, 18:46:42 »
Vazeni R-Gurus,

Potreboval som vytvoriť v R funkciu podobnú vstavanej acf() (= Auto Correlation Function).

Najprv som sa pozrel na zdroj build-in funkcie acf() pomocou prikazu

Kód: [Vybrat]
getAnywhere(plot.acf)

Potom som vytvoril svoju funkciu s názvom my_acf() s takmer rovnakou strukturou vysledkov, aku ma povodné acf(), t.j.:

Kód: [Vybrat]
> str(my_acf(x))
List of 6
 $ acf   : num [1:4, 1, 1] 1 0.25 -0.3 -0.45
 $ type  : chr "correlation"
 $ n.used: int 4
 $ lag   : num [1:4, 1, 1] 0 1 2 3
 $ series: chr "x"
 $ snames: NULL

> str(acf(x))
List of 6
 $ acf   : num [1:4, 1, 1] 1 0.25 -0.3 -0.45
 $ type  : chr "correlation"
 $ n.used: int 4
 $ lag   : num [1:4, 1, 1] 0 1 2 3
 $ series: chr "x"
 $ snames: NULL
 - attr(*, "class")= chr "acf"

Ale nepodarilo sa mi to dobre.

Zatial co povodna funkcia acf() k tomuto vstupnemu vektoru
Kód: [Vybrat]
> x <- c(1, 2, 3, 4)

vrati takyto pekny vystup

Kód: [Vybrat]
> y <- acf(x)
> y

Autocorrelations of series ‘x’, by lag

    0     1     2     3
 1.00  0.25 -0.30 -0.45

tak moja funkcia my_acf() my vratila iba nieco taketo nepekne

Kód: [Vybrat]
> y <- my_acf(x)
> y

$acf
, , 1

      [,1]
[1,]  1.00
[2,]  0.25
[3,] -0.30
[4,] -0.45


$type
[1] "correlation"

$n.used
[1] 4

$lag
, , 1

     [,1]
[1,]    0
[2,]    1
[3,]    2
[4,]    3


$series
[1] "x"

$snames
NULL

Potom som si vsimol, ze vo vysledku mojej funkcie nemam atribut class="acf"
Pridal som ho a teraz je to uz OK:

Kód: [Vybrat]
> y <- my_acf(x)
> y

Autocorrelations of series ‘x’, by lag

    0     1     2     3
 1.00  0.25 -0.30 -0.45
> y <- acf(x)
> y

Autocorrelations of series ‘x’, by lag

    0     1     2     3
 1.00  0.25 -0.30 -0.45

Teraz sa vystup mojej funkcie my_acf() zhoduje s vystupom vstavanej funkcie acf().

Ale aj tak nechapem, ako R vie, ze ma urobit speciálny vystup pre triedu „acf“.

Vie mi niekto poradit kde a akym sposobom je to nakodovane ?

Stran: [1]