Predogled podatkov, izpisov in drugih rezultatov

Predogled (HTML) izhoda

Opomba

Ta razdelek obravnava dodajanje funkcije predogleda vtičnikom, ki ustvarjajo izpise/izpise HTML. Priporočamo, da pred tem razdelkom preberete ločen razdelek o predogledih ploskev.

Ustvarjanje predogleda izpisa HTML je skoraj enak postopek kot ustvarjanje predogleda grafikona. V tem primeru se preprosto prepričajte, da preview() ustvari ustrezne ukaze rk.print()/rk.results(). Vendar pa je na splošno dobro izpustiti izjave glave v predogledu. Tukaj je skrajšan primer:

<!-- In the plugin's XML file -->>
        <dialog label="Import CSV data" >
                <browser id="file" type="file" label="File name"/>
                <!-- [...] -->>
                <preview id="preview" mode="output"/>
        </dialog>
>
                

Upoštevajte specifikacijo mode="output" v elementu <preview>.

// In the plugin's JS file
        function preview () {
                // generates the code used for preview
                printout (true);
        }

        function printout (is_preview) {
                // only generates a header if is_preview==false
                if (!is_preview) {
                        new Header ("This is a caption").print ();
                }
                echo ('rk.print (result)');
        }
                

Predogledi (uvoženih) podatkov

Opomba

Ta razdelek obravnava dodajanje funkcije predogleda vtičnikom, ki ustvarjajo (uvažajo) podatke. Priporočamo, da pred tem razdelkom preberete ločen razdelek o predogledih grafikonov.

Ustvarjanje predogleda uvoženih podatkov (katere koli vrste podatkov, ki jih lahko obdeluje rk.edit()) je zelo podobno ustvarjanju predogleda grafikona. Naslednji skrajšani primer bi moral pomagati ponazoriti, kako ustvariti predogled podatkov:

<!-- In the plugin's XML file -->>
        <dialog label="Import CSV data" >
                <browser id="file" type="file" label="File name"/>
                <!-- [...] -->>
                <preview id="preview" active="true" mode="data"/>
        </dialog>
>
                

Upoštevajte, da element <preview> tokrat določa mode="data". active="true" preprosto naredi predogled privzeto aktiven.

// In the plugin's JS file
        function preview () {
                // generates the code used for preview
                calculate (true);
        }

        function calculate (is_preview) {
                echo ('imported <- read.csv (file="' + getString ("file") /* [+ options] */);
                if (is_preview) {
                        echo ('preview_data <- imported\n');
                } else {
                        echo ('.GlobalEnv$' + getString ("name") + ' >- imported\n');
                }
        }

        function printout () {
                // [...]
        }
                

Spet funkcija preview() ustvari skoraj enakoR kodo kot funkcijo calculate(), tako da ustvarimo apomožno funkcijo doCalcuate() za izločanje skupnih delov. Najpomembnejša stvar, ki jo morate upoštevati, je, da boste morali dodeliti uvožene podatke v objekt, imenovan preview_data (znotraj trenutnega – lokalnega – okolja). Vse ostalo se bo zgodilo samodejno (grobo rečeno, bo RKWard poklical rk.edit(preview_data), zavit v klic .rk.with.window.hints()).

Opomba

Čeprav so predogledi odlična funkcija, porabljajo vire. V primeru predogledov podatkov, lahko pride do primerov, ko lahko predogledi povzročijo znatne težave z zmogljivostjo. To je lahko za uvoz ogromnih naborov podatkov (ki so preprosto preveliki, da bi ga odprli za urejanje v oknu urejevalnika RKWard), vendar tudi "običajni" nabori podatkov bi lahko bili napačno uvoženi, kar bi povzročilo ogromno številovrstic ali stolpcev. Zelo priporočljivo je, da omejite preview_data v dimenzijo, ki zagotavlja uporaben predogled, brez nevarnosti ustvarjanja opazne zmogljivostitežave (npr. 50 vrstic s 50 stolpci bi moralo biti v večini primerov več kot dovolj).

Predogledi po meri

Ukaz <preview> element lahko uporabite za ustvarjanjepredogledov za katero koli vrsto okna "dokumenta", ki ga je mogoče pripeti na RKWardnjegovo delovno mesto. Poleg grafovin podatkovnih oken, to vključuje HTMLdatoteke, R skripte in okna s povzetkom objektov. Za slednje tibo moral uporabiti <preview mode="custom">.

Če ste prebrali razdelke, ki opisujejo predogled izrisa in predogled podatkov, stebi morali imeti splošno predstavo o postopku, vendar so potrebni predogledi po merinekoliko več ročnega dela v zakulisju. Najpomembnejša R funkcija za ogled je rk.assign.preview.data(), tukaj. Naslednji kratek seznam prikazuje, kaj ste ustvarili (predogled) R koda bi lahko videti kot za vtičnik, ki ustvarja izhod besedilne datoteke:

## To be generated in the preview() code section of a plugin
        pdata <- rk.get.preview.data("SOMEID")
        if (is.null (pdata)) {
                outfile <- rk.get.tempfile.name(prefix="preview", extension=".txt")
                pdata <- list(filename=outfile, on.delete=function (id) {
                        unlink(rk.get.preview.data(id)$filename)
                })
                rk.assign.preview.data("SOMEID", pdata)
        }
        try ({
                cat ("This is a test", pdata$filename)
                rk.edit.files(file=pdata$filename)
        })
                

Tukaj bi morali pridobiti vrednost SOMEID iz lastnosti id elementa <preview>. tj. z uporabo getString ("preview.id") v datoteki .js vtičnika.