# R-tuki Maguyva-palvelussa: koodigraafit analyysi- ja pakettikoodille

Canonical source: https://maguyva.ai/fi/languages/r

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva tukee R-kieltä AST-jäsennyksellä, symboleilla ja graafilla, jotta tekoälyagentit voivat seurata funktioita, S3- ja S4-dispatchia ja mallien sovituskutsuja R-skripteissä ja -paketeissa.

## Tukikatsaus

- Taso: AST- ja symbolituki
- Ohjelmointi
- Päätteet: .r, .rmd, .rnw
- Oikea AST-jäsennys syntaksitietoiseen hakuun ja rakenteelliseen kontekstiin.
- Nimetyt symbolit syöttävät semanttista hakua ja ristiviittauksia. Graafinavigointi on käytettävissä, kun suhteiden poiminta on käytössä.
- Tämä kieli tuo symboleja ja suhteita graafia hyödyntävään hakuun; tuetut reunatyypit vaihtelevat kielen omien rakenteiden mukaan.
- Sekä AST-jäsennys että symbolien poiminta ovat käytettävissä.

## Parhaiten sopii

- R-paketit, joissa on paljon vietyjä funktioita, S3-metodeja ja sisäisiä apufunktioita.
- Skripteihin jaetut analyysiputket, jotka jakavat datan siivous- ja mallinnusfunktioita.
- Datatiimit, jotka antavat R-koodia tekoälyagenteille, joiden on nähtävä, mitkä funktiot syöttävät mitäkin malleja.

## Agenttien työnkulut

- Löytää datan siivousfunktion kaikki kutsujat ennen sen palauttamien sarakkeiden muuttamista.
- Jäljittää, mitkä funktiot välittävät kutsuja `UseMethod`-kutsulla ja missä niiden metodit ovat.
- Kartoittaa polku raakadatan lataamisesta sovitettuun malliin.

## Missä R kampittaa pinnallisia tekoälytyökaluja

R laittaa perusfunktiot, pakettien funktiot ja omat funktiosi yhteen litteään nimiavaruuteen. Pisteet ovat osa nimiä eivätkä jäsenviittauksia: `is.na`, `data.frame` ja `print.summary_table` ovat yksittäisiä tunnisteita. Työkalu, joka lukee `print.summary_table`-nimen metodiksi kohteessa `print`, ymmärtää rakenteen väärin, ja työkalu, joka tallentaa jokaisen peruskutsun, hautaa funktiosi kutsujen `c()` ja `paste()` alle.

Maguyva pitää R:n nimet kokonaisina ja suodattaa perusfunktioiden kohinan pois, joten agentti näkee funktiot, joista analyysisi todella riippuu.

## Mitä Maguyva poimii R-koodista

Maguyva liittää `.R`-, `.Rmd`- ja `.Rnw`-tiedostot R-kieleen. Nimeen sijoitetut funktiot, kuten `clean_survey <- function(df)`, poimitaan kyseisellä nimellä, eikä nimettömiä funktioita käsitellä määritelminä. Pisteellisiä nimiä ei koskaan jaeta vastaanottajaksi ja jäseneksi.

Osa base-R:n kutsuista jätetään tarkoituksella graafiin, koska ne näyttävät, miten analyysikoodi on kytketty: S3- ja S4-dispatch (`UseMethod`, `standardGeneric`), apply-perhe (`lapply`, `sapply`, `vapply`, `mapply`), mallien sovitus (`lm`, `predict`, `anova`), pakettien lataus (`library`, `require`) ja virheenkäsittely `tryCatch`-kutsulla.

Graafi tallentaa myös instanssien luonnit sekä luvut ja kirjoitukset.

## Esimerkkikehotteita agenteille

- ”Kuka kutsuu funktiota `clean_survey` ja mitkä mallit käyttävät sen tulosta?” (`find_symbol`, sitten `dependency_search` incoming)
- ”Mitkä funktiot kutsuvat funktiota `fit_model`?” (`dependency_search`)
- ”Jäljitä polku funktiosta `load_raw_data` lopulliseen regressioon.” (`get_task_context`)

## Tunnetut rajoitukset

- Noin 800 base-R:n, `stats`-paketin ja `graphics`-paketin nimeä suodatetaan pois suhteista, kuten `print`, `paste`, `c`, `data.frame`, piirtokutsut ja satunnaislukugeneraattorit. Käytä niihin `text_pattern_search`-työkalua.
- R luo luokat ja lataa paketit tavallisilla funktiokutsuilla, joten `structural_search`-työkalun esiasetukset `classes`, `imports` ja `variables` eivät valitse mitään. Käytä `find_symbol`- ja `text_pattern_search`-työkaluja.
- `.Rmd`- ja `.Rnw`-tiedostot luetaan kokonaisuudessaan R:n kieliopilla eikä lohko kerrallaan, joten R Markdown- ja Sweave-dokumenteista saadaan todennäköisesti vain osittaisia tuloksia.
- R:ssä ei ole dekoraattorisyntaksia, joten dekoraattorisuhteet on merkitty soveltumattomiksi.

## Seuraavat vaiheet

Yhdistä repositorio [pikaoppaan](/fi/docs/quickstart) avulla ja tarkista sitten tukimatriisi [yhteensopivuussivulta](/fi/docs/compatibility). Sekalaisissa datatieteen repositorioissa lue myös [Python-opas](/fi/languages/python).

## Moottorin yksityiskohdat

- R-tuki liittää `.R`-, `.Rmd`- ja `.Rnw`-tiedostot R-kieleen. Nimeen sijoitetut funktiot poimitaan kyseisellä nimellä, ja pisteelliset nimet kuten `data.frame` pysyvät kokonaisina.
- S3- ja S4-dispatch (`UseMethod`, `standardGeneric`), apply-perhe, `lm`, `predict` ja `tryCatch` jätetään tarkoituksella graafiin.
- Noin 800 base-R:n, `stats`- ja `graphics`-pakettien nimeä, kuten `print`, `paste` ja `c`, suodatetaan pois suhteista.

## Hyödylliset MCP-liittymäkohdat

- `find_symbol`: Käytä sitä siivous-, mallinnus- tai S3-metodin nimelle, kun tarvitset määritelmän ja kutsujat.
- `dependency_search`: Käytä incoming-läpikäyntiä apufunktiolle nähdäksesi, mitkä analyysit riippuvat siitä, ennen sen tuloksen muuttamista.
- `get_task_context`: Käytä sitä kehotteisiin kuten ”jäljitä polku raakadatan lataamisesta lopulliseen regressioon”.
