Utvärdera och optimera kodprestanda i R

Att optimera R-kod kan avsevärt förbättra prestandan för R-skript och program, vilket gör att de körs mer effektivt. Detta är särskilt viktigt för stora och komplexa datamängder, såväl som för applikationer som måste köras i realtid eller regelbundet.

I den här handledningen kommer vi att utvärdera och optimera en R-kods prestanda med hjälp av olika , som tidyverse och data.table. Som ett exempel ser vi hur lång tid det tar för RStudio att läsa en stor CSV-fil med funktionen read.csv ( ) , tidyverse-paketet och data.table-paketet.

Innehållsförteckning

Optimera prestanda i R

Öppna RStudio. Tilldela filtillägget till en variabel i R-skriptet.

Du måste använda funktionen system.file ( ) för att avgöra hur lång tid det tar att utföra en funktion eller operation. Eftersom vi vill utvärdera hur lång tid det tar att öppna en fil, skriv read.csv (df) i argumentet.

Utvärdera och optimera kodprestanda i R

När du kör koden kommer konsolen att visa dig hur lång tid det tog att öppna filen. Den förflutna kolumnen visar hur lång tid det tog för CPU:n att utföra R-koden. Resultaten visar att det tog RStudio 31,93 sekunder vilket är en betydande tid. Denna laddningstid är opraktisk om du alltid arbetar med stora datamängder.

Utvärdera och optimera kodprestanda i R

Ett av sätten du kan optimera prestandan för din R-kod är genom att använda tidyverse -paketet. Om du gör det minskar tiden från 30 till 5 sekunder.

Observera att för att läsa filen måste du använda funktionen read_csv ( ) .

Utvärdera och optimera kodprestanda i R

Tidyverse-paketet förbättrar laddningstiden i R genom användningen av readr -paketet, som ger en uppsättning snabba och effektiva funktioner för att läsa och skriva data. Readr-paketet tillhandahåller funktioner som read_csv ( ) och read_table ( ) som kan läsa stora datamängder snabbt och effektivt.

En annan optimeringsmetod i R använder paketet data.table . Detta är gratis att ladda ner på internet.

Data.table-paketet i R är ett kraftfullt och effektivt verktyg för att arbeta med stora och komplexa datamängder. Det tillhandahåller en förbättrad version av data.frame-objektet, som är en kärndatastruktur i R. Den största fördelen med data.table är dess höga prestanda och låga minnesanvändning när du arbetar med stora datamängder.

Observera att när du använder det här paketet måste du skriva funktionen fread ( ) istället för read.csv ( ). När du kör detta tillsammans med din kod kan du se att laddningstiden minskar till 2,25 sekunder.

Utvärdera och optimera kodprestanda i R

Jämföra R-paket med hjälp av Microbenchmark

För att jämföra prestandan mellan varje metod kan du använda funktionen mikrobenchmark ( ) .

Funktionen mikrobenchmark ( ) i R är ett verktyg för att mäta prestanda för R-kod. Det ger ett enkelt och lättanvänt gränssnitt för benchmarking av exekveringstiden för R-uttryck.

En bra sak med den här funktionen är att du kan ställa in hur många gånger processen ska upprepas. Detta ger mer exakta resultat. Du kan också identifiera om resultaten är konsekventa.

Utvärdera och optimera kodprestanda i R

Om du har problem med att läsa en CSV-fil i LuckyTemplates kan RStudio göra det åt dig. Det finns andra alternativ i R som du kan använda för att optimera din kods prestanda. Men data.table rekommenderas starkt på grund av dess enkelhet.

Slutsats

Att optimera R-kod är ett viktigt steg för att säkerställa att dina R-skript körs effektivt. Det finns flera tekniker och verktyg som kan användas för att optimera R-koden, som att använda tidyverse-paketet för datamanipulation, använda data.table-paketet för stora datamängder och använda mikrobenchmark-paketet för att mäta prestanda hos R-koden.

Det är också viktigt att tänka på goda kodningsrutiner som att använda vektoriserade operationer istället för loopar, använda inbyggda funktioner istället för att skriva din egen och vara uppmärksam på minnesanvändningen av din kod.

Med vänliga hälsningar,

George Mount


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.