
SAS Viya combineert de kracht van beheerde data, beveiliging op enterpriseniveau en schaalbare verwerking met de flexibiliteit van R en het uitgebreide ecosysteem aan packages voor gespecialiseerde methoden en visualisaties.
Hoewel SAS en R al jarenlang samenwerken, is de integratie nu een stap verder gegaan. Met PROC R en de R-code-editor is R nu rechtstreeks geïntegreerd in SAS Viya, net als Python. Samen met R-SWAT biedt dit drie verschillende manieren om R in je SAS Viya-workflows te gebruiken. Maar wat zijn de verschillen tussen deze benaderingen? Welke kun je het beste kiezen en hoe kun je R-packages daarbij efficiënt beheren?
In dit artikel bespreken we alle drie de mogelijkheden, leggen we uit hoe ze werken en helpen we je bepalen welke aanpak het beste aansluit bij jouw behoeften. Ben je ook geïnteresseerd in het werken met Python in SAS Viya? Lees dan ons aanvullende artikel: Python in SAS Viya.
Om het overzichtelijk te houden, is alle code die in de afbeeldingen wordt getoond op een aparte pagina te vinden. Klik Hier voor alle code die bij de voorbeelden hoort.
Welke aanpak het beste past, hangt af van hoe je je workflow wilt inrichten: met SAS in de hoofdrol, R in de hoofdrol of een combinatie van beide. Het onderstaande overzicht laat zien hoe dezelfde eenvoudige taak met elk van deze benaderingen kan worden uitgevoerd. In de volgende secties gaan we dieper in op hoe ze werken en wanneer je ze het beste kunt gebruiken.
Voor alle drie de opties is het beheren van R-packages met renv in een projectspecifieke omgeving optioneel, maar wel aan te raden. Dit helpt om packageversies consistent te houden en maakt het eenvoudiger om je workflows reproduceerbaar te maken.

Heb je al een SAS-workflow, maar wil je een specifiek R-package of een bepaalde R-methode gebruiken? Met PROC R kun je R-code toevoegen zonder je bestaande proces ergens anders opnieuw te hoeven opbouwen.
Een eenvoudig voorbeeld:

De R-code wordt uitgevoerd als één stap binnen het SAS-programma. Hierdoor zijn workflows zoals deze mogelijk:
Bereid de data voor in SAS.
Pas een R-methode of R-package toe.
Schrijf het resultaat terug naar SAS.
Ga verder met de rest van het SAS-proces.
Zodra R onderdeel wordt van een SAS Viya-workflow, worden packageversies belangrijk. Een update kan resultaten veranderen of ervoor zorgen dat bestaande code zich anders gedraagt. renv helpt dit te voorkomen door elk project een eigen packagebibliotheek te geven en de exacte versies vast te leggen in een renv.lock-bestand. Het gebruik ervan is optioneel, maar biedt al snel voordelen. Daarom maken we er in de volgende voorbeelden gebruik van.
Het bijbehorende bestand r_env.R bevat vijf functies:
create_r_env(): Maakt de omgeving aan (eenmalig uitvoeren).
load_env(): Activeert de omgeving en herstelt de packages op basis van renv.lock.
install_and_lock(): Installeert packages en werkt het lockbestand bij.
remove_env(): Verwijdert de omgeving.
r_env_status(): Toont de actieve omgeving en de instellingen voor repositories en packagebibliotheken.
Laad dit bestand aan het begin van elk PROC R-blok met source(), gevolgd door load_env(). Dit is vooral belangrijk na proc r restart, omdat hiermee de R-sessie opnieuw wordt geïnitialiseerd.

De packages worden opgehaald uit Posit Package Manager, dat vooraf gecompileerde packages voor de server beschikbaar stelt. Aan de SAS-kant definiëren drie macrovariabelen de map voor de omgeving, de locatie van r_env.R en de benodigde packages. Het aanmaken van de omgeving hoeft slechts één keer te gebeuren. Het volledige bestand r_env.R is beschikbaar op de bijbehorende codepagina.

Vervolgens installeert install_and_lock() de ontbrekende packages en werkt het bestand renv.lock bij. Vanaf dat moment begint elk PROC R-blok met source() en load_env(), gevolgd door de daadwerkelijke R-code (show() wordt verderop toegelicht):

Een veelgemaakte fout is het vergeten van load_env(). Zonder deze functie kunnen packages in de verkeerde bibliotheek terechtkomen, waardoor ze later verdwenen lijken te zijn. Omdat load_env() de packages herstelt op basis van renv.lock, dient het lockbestand ook als blauwdruk voor het opnieuw opbouwen of kopiëren van een omgeving.
Een opmerking over de configuratie: de beschikbaarheid van R, de toegang tot repositories, machtigingen en proxy-instellingen zijn afhankelijk van je SAS Viya-omgeving. Hulp nodig om alles werkend te krijgen? Neem gerust contact met ons op.
Zodra de omgeving is ingericht, kunnen SAS en R rechtstreeks data uitwisselen. Hiervoor zijn twee functies beschikbaar:
sd2df() leest een SAS- of CAS-tabel in als een R-dataframe.
df2sd() schrijft een R-dataframe terug als een SAS- of CAS-tabel.
Beide functies maken gebruik van het haven-package, dat in de omgeving geïnstalleerd moet zijn.
In het onderstaande voorbeeld wordt SASHELP.CLASS ingelezen, worden in R de gemiddelde lengte en het gemiddelde gewicht per geslacht berekend en worden de resultaten weggeschreven naar de WORK-bibliotheek.

Zodra de data weer beschikbaar is in SAS, kun je verdergaan met elke gewenste SAS-procedure.
Niet elke R-workflow heeft een SAS-wrapper nodig. Sinds SAS Viya Stable 2026.04 beschikt SAS Studio (in 2026.06 hernoemd naar SAS Data and AI Studio) over een R-code-editor waarmee je rechtstreeks R-programma's kunt schrijven, uitvoeren en opslaan. Dezelfde functies voor omgevingsbeheer en data-uitwisseling werken ook hier, inclusief toegang tot CAS. Het belangrijkste verschil is dat SAS-macrovariabelen buiten PROC R niet beschikbaar zijn. Daarom moeten paden rechtstreeks worden opgegeven.
Het onderstaande voorbeeld voert dezelfde berekening uit als hiervoor en introduceert één extra functie: show(dataframe, title, number_of_records) toont een R-dataframe in het resultatenvenster. In tegenstelling tot print(), dat uitvoer naar het SAS-log schrijft, maakt show() het eenvoudiger om resultaten terug te vinden. Hiervoor is het arrow-package nodig, dat ook in de omgeving geïnstalleerd moet zijn.
Zowel show() als de functies voor data-uitwisseling werken in PROC R en in standalone R-programma's.

Tot nu toe hebben we gekeken naar manieren waarop R binnen SAS Viya wordt uitgevoerd. Maar wat als je liever vanuit R werkt en de verwerkingsmogelijkheden van Viya wilt toevoegen aan je bestaande workflow? Daar komt SWAT (SAS Scripting Wrapper for Analytics Transfer) van pas. Het swat-package verbindt R met Cloud Analytic Services (CAS), zodat je vanuit RStudio, Posit Workbench of een andere R-omgeving kunt werken en tegelijkertijd gebruik kunt maken van de verwerkingsmogelijkheden van Viya.
Het package wordt geïnstalleerd vanuit SAS R-universe. Om inloggegevens buiten je code te houden, sla je deze op als omgevingsvariabelen in het bestand .Renviron. Op de bijbehorende codepagina worden beide stappen toegelicht.
Er zijn twee manieren om verbinding te maken: met een gebruikersnaam en wachtwoord of met een OAuth-toegangstoken. Authenticatie met een gebruikersnaam en wachtwoord is de snelste optie, maar wordt niet door elke Viya-omgeving ondersteund. In die gevallen biedt een OAuth-toegangstoken uitkomst. Dit is bovendien de voorkeursmethode voor productieomgevingen. Een beheerder kan zo'n token beschikbaar stellen.

Zodra de verbinding tot stand is gebracht, kun je tabellen in een caslib opvragen, naar CAS-tabellen verwijzen en indien nodig data in lokale R-dataframes inlezen. Je kunt ook resultaten terugschrijven naar CAS. Hierdoor kun je met grote datasets werken, terwijl het grootste deel van de data in Viya blijft. Zo voorkom je dat er onnodig data naar je lokale R-omgeving wordt overgebracht.

SAS en R hebben elk hun eigen sterke punten, en SAS Viya maakt het mogelijk om deze op verschillende manieren te combineren. Gebruik PROC R wanneer SAS de hoofdrol speelt in je workflow, standalone R wanneer je rechtstreeks in R binnen Viya wilt werken, of R-SWAT wanneer je liever vanuit een externe R-omgeving werkt die verbonden is met CAS. Welke aanpak het beste past, hangt af van je workflow en waar je je analyses wilt uitvoeren.
Alle codevoorbeelden uit dit artikel zijn beschikbaar op de bijbehorende codepagina, zodat je er direct zelf mee aan de slag kunt.
Benieuwd naar dezelfde mogelijkheden voor Python? Lees dan ons artikel over Python in SAS Viya.
Heb je vragen of hulp nodig bij het configureren van R in SAS Viya? Neem gerust contact met ons op. We helpen je graag verder.
Notilyze B.V.
Stationsplein 45 A4.004
3013 AK Rotterdam
+31 (0)10 79 86 295
info@notilyze.com