Megosztás a következőn keresztül:


Egyéni R-modulok definiálása a Machine Learning Studióhoz (klasszikus)

HATÓKÖR:Érvényes. A Machine Learning Studio (klasszikus) nem érvényes.Azure Machine Learning

Fontos

A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.

2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.

A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.

Ez a témakör azt ismerteti, hogyan lehet egyéni (klasszikus) R Studiót létrehozni és üzembe helyezni. Ismerteti az egyéni R-modulokat és a definiálásukhoz használt fájlokat. Bemutatja, hogyan hozhatja létre a modult definiáló fájlokat, és hogyan regisztrálhatja a modult az üzembe helyezéshez egy Machine Learning-munkaterületen. Az egyéni modul definíciójában használt elemeket és attribútumokat ezután részletesebben ismertetjük. A kiegészítő funkciók, a fájlok és a több kimenet használatának módját is tárgyaljuk.

Az egyéni modul egy felhasználó által definiált modul, amely feltölthető a munkaterületre, és végrehajtható a Machine Learning Studio (klasszikus) kísérletének részeként. Az egyéni R-modul egy egyéni modul, amely egy felhasználó által definiált R-függvényt hajt végre. Az R egy statisztikai számítástechnika és grafika programozási nyelve, amelyet a statisztikusok és az adattudósok széles körben használnak algoritmusok implementálásához. Jelenleg az R az egyetlen támogatott nyelv az egyéni modulokban, de a további nyelvek támogatása a jövőbeli kiadásokra lesz ütemezve.

Az egyéni modulok első osztályú állapotban vannak a Machine Learning Studióban (klasszikus), abban az értelemben, hogy ugyanúgy használhatók, mint bármely más modul. Más modulokkal is végrehajthatók, a közzétett kísérletekben vagy a vizualizációkban is. Ön szabályozhatja a modul által implementált algoritmust, a használni kívánt bemeneti és kimeneti portokat, a modellezési paramétereket és más különböző futtatókörnyezeti viselkedéseket. Az egyéni modulokat tartalmazó kísérletek az Azure AI-galériában is közzétehetők az egyszerű megosztás érdekében.

Fájlok egyéni R-modulban

Az egyéni R-modulokat egy .zip fájl határozza meg, amely legalább két fájlt tartalmaz:

  • A modul által közzétett R-függvényt megvalósító forrásfájl
  • Az egyéni modul felületét leíró XML-definíciós fájl

A .zip fájl további kiegészítő fájlokat is tartalmazhat, amelyek az egyéni modulból elérhető funkciókat biztosítják. Ezt a beállítást a rövid útmutató példáját követve, a hivatkozási szakasz Elemek szakaszÁnak Elemek szakaszában tárgyaljuk.

Rövid útmutató példa: egyéni R-modul definiálása, becsomagolása és regisztrálása

Ez a példa bemutatja, hogyan hozhatja létre az egyéni R-modulhoz szükséges fájlokat, csomagolhatja őket zip-fájlba, majd regisztrálhatja a modult a Machine Learning-munkaterületen. A zip-mintacsomag és a mintafájlok letölthetők a Download CustomAddRows.zip fájlból.

A forrásfájl

Vegyük példaként az Egyéni sorok hozzáadása modult, amely módosítja a sorok (megfigyelések) két adathalmazból (adatkeretekből) való összefűzéséhez használt Sorok hozzáadása modul szabványos implementációját. A standard Sorok hozzáadása modul az algoritmus használatával rbind hozzáfűzi a második bemeneti adathalmaz sorait az első bemeneti adathalmaz végéhez. A testre szabott CustomAddRows függvény hasonlóan fogad el két adathalmazt, de egy logikai felcserélési paramétert is elfogad további bemenetként. Ha a felcserélési paraméter FALSE (HAMIS) értékre van állítva, ugyanazt az adatkészletet adja vissza, mint a standard implementáció. Ha azonban a felcserélési paraméter IGAZ, a függvény az első bemeneti adathalmaz sorait fűzi hozzá a második adatkészlet végéhez. Az Egyéni sorok hozzáadása modul által közzétett R-függvény CustomAddRows implementációját tartalmazó CustomAddRows.R fájl az alábbi R-kóddal rendelkezik.

CustomAddRows <- function(dataset1, dataset2, swap=FALSE) 
{
    if (swap)
    {
        return (rbind(dataset2, dataset1));
    }
    else
    {
        return (rbind(dataset1, dataset2));
    } 
} 

Az XML-definíciós fájl

Ha ezt CustomAddRows a függvényt a Machine Learning Studio (klasszikus) moduljaként szeretné elérhetővé tenni, létre kell hoznia egy XML-definíciós fájlt, amely meghatározza az Egyéni sorok hozzáadása modul megjelenését és viselkedését.

<!-- Defined a module using an R Script -->
<Module name="Custom Add Rows">
    <Owner>Microsoft Corporation</Owner>
    <Description>Appends one dataset to another. Dataset 2 is concatenated to Dataset 1 when Swap is FALSE, and vice versa when Swap is TRUE.</Description>

<!-- Specify the base language, script file and R function to use for this module. -->        
    <Language name="R" 
        sourceFile="CustomAddRows.R" 
        entryPoint="CustomAddRows" />  

<!-- Define module input and output ports -->
<!-- Note: The values of the id attributes in the Input and Arg elements must match the parameter names in the R Function CustomAddRows defined in CustomAddRows.R. -->
    <Ports>
        <Input id="dataset1" name="Dataset 1" type="DataTable">
            <Description>First input dataset</Description>
        </Input>
        <Input id="dataset2" name="Dataset 2" type="DataTable">
            <Description>Second input dataset</Description>
        </Input>
        <Output id="dataset" name="Dataset" type="DataTable">
            <Description>The combined dataset</Description>
        </Output>
    </Ports>

<!-- Define module parameters -->
    <Arguments>
        <Arg id="swap" name="Swap" type="bool" >
            <Description>Swap input datasets.</Description>
        </Arg>
    </Arguments>
</Module>

Fontos megjegyezni, hogy az XML-fájl input- és Arg-elemeinekazonosító attribútumainak értékének meg kell egyeznie a CustomAddRows.R fájl R-kódjának függvényparaméter-nevével, PONTOSAN: (dataset1, dataset2 és swap a példában). Hasonlóképpen, a Language elem entryPoint attribútumának meg kell egyeznie az R-szkriptBEN található függvény nevével, PONTOSAN: (a példában a CustomAddRows attribútummal).

Ezzel szemben a Kimeneti elem azonosító attribútuma nem felel meg az R-szkript egyik változójának sem. Ha egynél több kimenetre van szükség, egyszerűen adjon vissza egy listát az R függvényből, és az eredmények ugyanabban a sorrendben legyenek elhelyezve, mint a Kimenet elemek deklarálása az XML-fájlban.

A modul becsomagolása és regisztrálása

Mentse ezt a két fájlt CustomAddRows.R és CustomAddRows.xml néven, majd tömörítse a két fájlt egy CustomAddRows.zip fájlba.

Ha regisztrálni szeretné őket a Machine Learning-munkaterületen, nyissa meg a munkaterületet a Machine Learning Studióban (klasszikus), kattintson a lenti +ÚJ gombra, és válassza a MODUL –> ZIP-CSOMAGBÓL lehetőséget az új Egyéni sorok hozzáadása modul feltöltéséhez.

Zip feltöltése

Az Egyéni sorok hozzáadása modul most már készen áll arra, hogy hozzáférjen a Machine Learning-kísérletekhez.

Az XML-definíciós fájl elemei

Modulelemek

A Modul elem egy egyéni modul definiálására szolgál az XML-fájlban. Több modul definiálható egy XML-fájlban több modulelem használatával. A munkaterület minden moduljához egyedi névvel kell rendelkeznie. Regisztráljon egy egyéni modult ugyanazzal a névvel, mint egy meglévő egyéni modul, és lecseréli a meglévő modult az újra. Az egyéni modulok azonban regisztrálhatók ugyanazzal a névvel, mint egy meglévő (klasszikus) Machine Learning Studio-modul. Ha igen, akkor a modulpaletta Egyéni kategóriájában jelennek meg.

<Module name="Custom Add Rows" isDeterministic="false"> 
    <Owner>Microsoft Corporation</Owner>
    <Description>Appends one dataset to another...</Description>/> 

A Modul elemen belül két további választható elemet is megadhat:

  • a modulba beágyazott Tulajdonos elem
  • Egy leírási elem, amely a modul gyors súgójában megjelenő szöveget tartalmazza, és amikor a gépi tanulás felhasználói felületén rámutat a modulra.

A modulelemek karakterkorlátainak szabályai:

  • A Modul elem névattribútumának értéke nem haladhatja meg a 64 karaktert.
  • A Description elem tartalma nem lehet hosszabb 128 karakternél.
  • A Tulajdonos elem tartalma nem lehet hosszabb 32 karakternél.

A modulok eredményei lehetnek determinisztikusak vagy nem determinisztikusak.** Alapértelmezés szerint minden modul determinisztikusnak minősül. Vagyis a bemeneti paraméterek és adatok változatlan készlete miatt a modulnak ugyanazokat az eredményeket kell visszaadnia, mint az eacRAND vagy a függvény futási ideje. Ennek a viselkedésnek a következtében a Machine Learning Studio (klasszikus) csak akkor futtatja újra a determinisztikusként megjelölt modulokat, ha egy paraméter vagy a bemeneti adatok megváltoztak. A gyorsítótárazott eredmények visszaadása a kísérletek sokkal gyorsabb végrehajtását is biztosítja.

Vannak olyan függvények, amelyek nem determinisztikusak, például a RAND vagy az aktuális dátumot vagy időt vissza adó függvény. Ha a modul nem determinisztikus függvényt használ, megadhatja, hogy a modul nem determinisztikus-e, ha a nem kötelező isDeterministic attribútumot FALSE értékre állítja. Ez biztosítja, hogy a modul a kísérlet futtatásakor újra fut, még akkor is, ha a modul bemenete és paraméterei nem változtak.

Nyelvdefiníció

Az XML-definíciós fájl Language eleme az egyéni modul nyelvének megadására szolgál. Jelenleg az R az egyetlen támogatott nyelv. A sourceFile attribútum értékének a modul futtatásakor meghívandó függvényt tartalmazó R-fájl nevének kell lennie. A fájlnak a zip-csomag részét kell képeznie. Az entryPoint attribútum értéke a meghívandó függvény neve, és meg kell egyeznie a forrásfájlban definiált érvényes függvénnyel.

<Language name="R" sourceFile="CustomAddRows.R" entryPoint="CustomAddRows" />

Portok

Az egyéni modul bemeneti és kimeneti portja az XML-definíciós fájl Portok szakaszának gyermekelemeiben van megadva. Ezeknek az elemeknek a sorrendje határozza meg a felhasználók által tapasztalt elrendezést (UX). Az XML-fájl Ports elemében felsorolt első gyermekbemenet vagy -kimenet lesz a Machine Learning felhasználói felületének bal szélső bemeneti portja. Minden bemeneti és kimeneti port rendelkezhet egy választható Description gyermekelemmel, amely megadja a szöveget, amikor az egérmutatót a Machine Learning felhasználói felületén a port fölé viszi.

Portszabályok:

  • A bemeneti és kimeneti portok maximális száma egyenként 8.

Bemeneti elemek

A bemeneti portok lehetővé teszik az adatok továbbítását az R-függvénynek és -munkaterületnek. A bemeneti portok esetében támogatott adattípusok a következők:

Datatable: Ez a típus adatkeretként lesz átadva az R-függvénynek. A Machine Learning által támogatott és a DataTable-val kompatibilis típusokat (például CSV-fájlokat vagy ARFF-fájlokat) a rendszer automatikusan data.frame formátumba alakítja.

<Input id="dataset1" name="Input 1" type="DataTable" isOptional="false">
    <Description>Input Dataset 1</Description>
</Input>

Az egyes DataTable bemeneti portokhoz társított id attribútumnak egyedi értékkel kell rendelkeznie, és ennek az értéknek meg kell egyeznie az R-függvény megfelelő elnevezett paraméterével. A kísérlet bemeneteként nem átadott opcionális DataTable-portokNULL értéket adnak át az R függvénynek, és a választható zip-portokat a rendszer figyelmen kívül hagyja, ha a bemenet nincs csatlakoztatva. Az isOptional attribútum a DataTable és a Zip típus esetén is választható, és alapértelmezés szerint hamis .

Zip: Az egyéni modulok bemenetként elfogadhatnak zip-fájlokat. Ez a bemenet ki van csomagolva a függvény R munkakönyvtárába

<Input id="zippedData" name="Zip Input" type="Zip" IsOptional="false">
    <Description>Zip files to be extracted to the R working directory.</Description>
</Input>

Egyéni R-modulok esetén a Zip-port azonosítójának nem kell megegyeznie az R-függvény paramétereivel. Ennek az az oka, hogy a zip-fájl automatikusan ki lesz bontva az R munkakönyvtárba.

Bemeneti szabályok:

  • A Bemeneti elem azonosító attribútumának értéke csak érvényes R változónév lehet.
  • A Bemeneti elem azonosító attribútumának értéke nem lehet hosszabb 64 karakternél.
  • A Bemeneti elem névattribútumának értéke nem lehet hosszabb 64 karakternél.
  • A Leírás elem tartalma nem lehet hosszabb 128 karakternél
  • A Bemeneti elem típusattribútumának értéke Zip vagy DataTable lehet.
  • A bemeneti elem isOptional attribútumának értéke nem kötelező (és alapértelmezés szerint hamis, ha nincs megadva); de ha meg van adva, igaznak vagyhamisnak kell lennie.

Kimeneti elemek

Standard kimeneti portok: A kimeneti portok az R függvény visszatérési értékeire vannak leképezve, amelyeket a későbbi modulok használhatnak. Jelenleg a DataTable az egyetlen szabványos kimeneti porttípus, amely támogatott. (Hamarosan támogatást kapnak a tanulók és az átalakítások .) A DataTable kimenete a következő:

<Output id="dataset" name="Dataset" type="DataTable">
    <Description>Combined dataset</Description>
</Output>

Az egyéni R-modulok kimenetei esetében az id attribútum értékének nem kell megegyeznie az R-szkriptben lévő semmivel, de egyedinek kell lennie. Egyetlen modul kimenete esetén az R függvény visszatérési értékének data.frame-nek kell lennie. Ahhoz, hogy egy támogatott adattípus több objektumát is ki lehessen adni, meg kell adni a megfelelő kimeneti portokat az XML-definíciós fájlban, és az objektumokat listaként kell visszaadni. A kimeneti objektumok balról jobbra vannak hozzárendelve a kimeneti portokhoz, tükrözve az objektumok visszaadott listában való elhelyezésének sorrendjét.

Ha például módosítani szeretné az Egyéni sorok hozzáadása modult úgy, hogy az eredeti két adathalmazt, az 1. és a 2. adatkészletet adja vissza az új csatlakoztatott adathalmaz, adatkészlet mellett (sorrendben, balról jobbra, például: adathalmaz, adathalmaz1, adatkészlet2), majd adja meg a kimeneti portokat a CustomAddRows.xml fájlban az alábbiak szerint:

<Ports> 
    <Output id="dataset" name="Dataset Out" type="DataTable"> 
        <Description>New Dataset</Description> 
    </Output> 
    <Output id="dataset1_out" name="Dataset 1 Out" type="DataTable"> 
        <Description>First Dataset</Description> 
    </Output> 
    <Output id="dataset2_out" name="Dataset 2 Out" type="DataTable"> 
        <Description>Second Dataset</Description> 
    </Output> 
    <Input id="dataset1" name="Dataset 1" type="DataTable"> 
        <Description>First Input Table</Description>
    </Input> 
    <Input id="dataset2" name="Dataset 2" type="DataTable"> 
        <Description>Second Input Table</Description> 
    </Input> 
</Ports> 

És adja vissza az objektumok listáját egy listában a megfelelő sorrendben a "CustomAddRows.R" fájlban:

CustomAddRows <- function(dataset1, dataset2, swap=FALSE) { 
    if (swap) { dataset <- rbind(dataset2, dataset1)) } 
    else { dataset <- rbind(dataset1, dataset2)) 
    } 
    return (list(dataset, dataset1, dataset2)) 
} 

Vizualizáció kimenete: Megadhat egy vizualizáció típusú kimeneti portot is, amely megjeleníti az R grafikus eszköz és a konzol kimenetét. Ez a port nem része az R-függvény kimenetének, és nem zavarja a többi kimeneti porttípus sorrendjét. Ha vizualizációs portot szeretne hozzáadni az egyéni modulokhoz, adjon hozzá egy Kimeneti elemet a típusattribútumhoz tartozó Vizualizáció értékkel:

<Output id="deviceOutput" name="View Port" type="Visualization">
    <Description>View the R console graphics device output.</Description>
</Output>

Kimeneti szabályok:

  • A Kimeneti elem azonosító attribútumának értékének érvényes R változónévnek kell lennie.
  • A Kimeneti elem azonosító attribútumának értéke nem lehet hosszabb 32 karakternél.
  • A Kimeneti elem névattribútumának értéke nem lehet hosszabb 64 karakternél.
  • A Kimeneti elem típusattribútumának értékének vizualizációnak kell lennie.

Argumentumok

További adatok továbbíthatók az R függvénynek az Argumentumok elemben meghatározott modulparamétereken keresztül. Ezek a paraméterek a Modul kiválasztásakor a Machine Learning felhasználói felületének jobb szélső tulajdonságok paneljén jelennek meg. Az argumentumok a támogatott típusok bármelyike lehetnek, vagy szükség esetén egyéni számbavételt is létrehozhat. A Portok elemekhez hasonlóan az Argumentumok elemhez is tartozhat egy választható Description elem, amely meghatározza azt a szöveget, amely akkor jelenik meg, amikor az egérmutatót a paraméter nevére viszi. A modulok opcionális tulajdonságai, például a defaultValue, a minValue és a maxValue bármely argumentumhoz hozzáadhatók a Tulajdonságok elem attribútumaiként. A Tulajdonságok elem érvényes tulajdonságai az argumentum típusától függenek, és a következő szakaszban ismertetett támogatott argumentumtípusokkal vannak ismertetve. Az isOptional tulajdonság "true" (igaz) értékre állításával rendelkező argumentumok esetében a felhasználónak nem kell értéket megadnia. Ha nincs megadva érték az argumentumnak, akkor az argumentum nem lesz átadva a belépésipont-függvénynek. A nem kötelező belépésipont-függvény argumentumait a függvénynek explicit módon kell kezelnie, például a belépésipont-függvény definíciójában a NULL alapértelmezett értéket kell hozzárendelnie. A választható argumentumok csak akkor kényszerítik ki a többi argumentumkorlátozást, azaz minimális vagy maximum értéket, ha a felhasználó megad egy értéket. A bemenetekhez és kimenetekhez hasonlóan kritikus fontosságú, hogy mindegyik paraméter egyedi azonosítóértékekkel rendelkezzen. A rövid útmutató példájában a társított azonosító/paraméter felcserélve lett.

Arg elem

A modulparaméter az XML-definíciós fájl Argumentumok szakaszának Arg gyermekelemével van definiálva. A Portok szakasz gyermekelemeihez hasonlóan az Argumentumok szakaszban lévő paraméterek sorrendje határozza meg a felhasználói felületen észlelt elrendezést. A paraméterek felülről lefelé jelennek meg a felhasználói felületen, ugyanabban a sorrendben, amelyben az XML-fájlban vannak definiálva. A Machine Learning által a paraméterekhez támogatott típusok itt találhatók.

int – egész szám (32 bites) típusú paraméter.

<Arg id="intValue1" name="Int Param" type="int">
    <Properties min="0" max="100" default="0" />
    <Description>Integer Parameter</Description>
</Arg>
  • Választható tulajdonságok: min, max, default és isOptional

double – kettős típusú paraméter.

<Arg id="doubleValue1" name="Double Param" type="double">
    <Properties min="0.000" max="0.999" default="0.3" />
    <Description>Double Parameter</Description>
</Arg>
  • Választható tulajdonságok: min, max, default és isOptional

bool – logikai paraméter, amelyet a felhasználói felület jelölőnégyzete jelöl.

<Arg id="boolValue1" name="Boolean Param" type="bool">
    <Properties default="true" />
    <Description>Boolean Parameter</Description>
</Arg>
  • Választható tulajdonságok: alapértelmezett – hamis, ha nincs beállítva

string: standard sztring

<Arg id="stringValue1" name="My string Param" type="string">
    <Properties isOptional="true" />
    <Description>String Parameter 1</Description>
</Arg>    
  • Választható tulajdonságok: alapértelmezett és isOptional

ColumnPicker: oszlopkijelölési paraméter. Ez a típus oszlopválasztóként jelenik meg a felhasználói felületen. A Tulajdonság elem itt annak a portnak az azonosítóját adja meg, amelyből oszlopok vannak kiválasztva, ahol a célporttípusnak DataTable-nak kell lennie. Az oszlopkijelölés eredményét a rendszer a kijelölt oszlopneveket tartalmazó sztringek listájaként továbbítja az R függvénynek.

<Arg id="colset" name="Column set" type="ColumnPicker">      
    <Properties portId="datasetIn1" allowedTypes="Numeric" default="NumericAll"/>
    <Description>Column set</Description>
</Arg>
  • Kötelező tulajdonságok: portId – egy DataTable típusú bemeneti elem azonosítójával egyezik.

  • Nem kötelező tulajdonságok:

    • allowedTypes – Szűri azokat az oszloptípusokat, amelyek közül választhat. Az érvényes értékek a következők:

      • Numerikus
      • Logikai érték
      • Kategorikus
      • Sztring
      • Címke
      • Szolgáltatás
      • Pontszám
      • Mind
    • default – Az oszlopválasztó érvényes alapértelmezett kijelölései a következők:

      • None
      • NumericFeature
      • NumericLabel
      • NumericScore
      • NumericAll
      • Logikai érték
      • Logikai címke
      • Logikai érték
      • BooleanAll
      • Kategorikusfeature
      • Kategorikus címke
      • Kategorikus mag
      • Kategorikus összes
      • StringFeature
      • StringLabel
      • StringScore
      • StringAll
      • AllLabel
      • AllFeature
      • AllScore
      • Mind

Legördülő lista: felhasználó által megadott enumerált (legördülő) lista. A legördülő elemek a Tulajdonságok elemen belül egy Elem elem használatával vannak megadva. Az egyes elemekazonosítójának egyedinek és érvényes R-változónak kell lennie. Az elemnevének értéke a megjelenő szövegként és az R függvénynek átadott értékként is szolgál.

<Arg id="color" name="Color" type="DropDown">
    <Properties default="red">
        <Item id="red" name="Red Value"/>
        <Item id="green" name="Green Value"/>
        <Item id="blue" name="Blue Value"/>
    </Properties>
    <Description>Select a color.</Description>
</Arg>    
  • Nem kötelező tulajdonságok:
    • default – Az alapértelmezett tulajdonság értékének meg kell egyeznie az elemelemek egyikének azonosítóértékével.

Kiegészítő fájlok

Az egyéni modul ZIP-fájljában elhelyezett fájlok a végrehajtási idő alatt is felhasználhatók lesznek. A könyvtárstruktúrák megmaradnak. Ez azt jelenti, hogy a fájl forráskezelése helyileg és a Machine Learning Studio (klasszikus) végrehajtásában is ugyanúgy működik.

Megjegyzés

Figyelje meg, hogy az összes fájl ki lesz csomagolva az "src" könyvtárba, így minden elérési útnak "src/" előtaggal kell rendelkeznie.

Tegyük fel például, hogy el szeretné távolítani az NA-kkal rendelkező sorokat az adathalmazból, és el szeretné távolítani az ismétlődő sorokat, mielőtt a CustomAddRows-ba adná ki őket, és már írt egy R-függvényt, amely ezt végzi a RemoveDupNARows.R fájlban:

RemoveDupNARows <- function(dataFrame) {
    #Remove Duplicate Rows:
    dataFrame <- unique(dataFrame)
    #Remove Rows with NAs:
    finalDataFrame <- dataFrame[complete.cases(dataFrame),]
    return(finalDataFrame)
}

A RemoveDupNARows.R segédfájlt a CustomAddRows függvényben forrásként használhatja:

CustomAddRows <- function(dataset1, dataset2, swap=FALSE) {
    source("src/RemoveDupNARows.R")
        if (swap) { 
            dataset <- rbind(dataset2, dataset1))
        } else { 
            dataset <- rbind(dataset1, dataset2)) 
        } 
    dataset <- removeDupNARows(dataset)
    return (dataset)
}

Ezután töltsön fel egy zip-fájlt, amely a "CustomAddRows.R", a "CustomAddRows.xml" és a "RemoveDupNARows.R" fájlt tartalmazza egyéni R-modulként.

Végrehajtási környezet

Az R-szkript végrehajtási környezete ugyanazt az R-verziót használja, mint az R-szkript végrehajtása modul, és ugyanazokat az alapértelmezett csomagokat használhatja. Az egyéni modulhoz további R-csomagokat is hozzáadhat, ha felveszi őket az egyéni modul zip-csomagjához. Egyszerűen töltse be őket az R-szkriptbe, ahogyan a saját R-környezetében tenné.

A végrehajtási környezet korlátozásai a következők:

  • Nem állandó fájlrendszer: Az egyéni modul futtatásakor írt fájlok nem maradnak meg ugyanazon modul több futtatása között.
  • Nincs hálózati hozzáférés