R är ett hög-nivå programmeringsspråk och en gratis mjukvarumiljö som främst används för statistisk beräkning och dataanalys. Det är populärt bland statistiker, datavetare och akademiker för sina kraftfulla datamanipulations-, statistiska modellering- och grafiska kapabiliteter. R erbjuder ett brett utbud av paket som utökar dess funktionalitet, vilket gör det anpassningsbart för olika uppgifter inom datamining, bioinformatik och till och med maskininlärning.
R skapades i början av 1990-talet av Ross Ihaka och Robert Gentleman vid University of Auckland, Nya Zeeland. Det konstruerades som ett öppen källkodsspråk baserat på S-programmeringsspråket, som utvecklades vid Bell Laboratories på 1970-talet. R designades för att vara både ett statistiskt verktyg och ett programmeringsspråk, vilket möjliggör för användare att enkelt manipulera data och producera högkvalitativa grafiska utdata.
Under åren har R fått en växande användarcommunity och ett betydande paketekosystem, känt som CRAN (Comprehensive R Archive Network). Detta nätverk gör det möjligt för användare att ladda ner och installera olika bibliotek som utökar R:s kapabiliteter. I början av 2000-talet började R få fäste inom akademiska och industriella kretsar, och det citerades ofta i forskningsartiklar inom många områden.
Fram till 2023 förblir R ett dominerande språk inom datavetenskap och statistisk analys. Det har utvecklats med regelbundna uppdateringar, nya paket och en aktiv community som bidrar till kontinuerliga förbättringar och förstärkningar. R är också känt för sin integration med andra programmeringsspråk och ramverk, vilket ytterligare befäster dess roll inom modern dataanalys.
R har vektorer som en av sina primära datastrukturer. En vektor kan hålla flera värden av samma typ, vilket gör den väsentlig för datamanipulation.
numbers <- c(1, 2, 3, 4, 5)
Data frame är en annan grundläggande struktur som möjliggör lagring av data i tabellformat där varje kolumn kan vara av olika typer.
data <- data.frame(Name=c("Alice", "Bob"), Age=c(25, 30))
R stöder förstklassiga funktioner, vilket gör det möjligt för användare att definiera och anropa funktioner enkelt.
add <- function(x, y) {
return(x + y)
}
result <- add(5, 3)
Standard kontrollstrukturer, såsom if
, else
och for
-loopar, är integrerade delar av R:s syntax.
for (i in 1:5) {
print(i)
}
R har omfattande inbyggda plottmöjligheter, vilket möjliggör skapandet av visualiseringar med ett enda funktionsanrop.
plot(data$Age, main="Åldersplott", xlab="Index", ylab="Ålder")
Användare kan installera ytterligare paket från CRAN direkt genom R med hjälp av funktionen install.packages()
.
install.packages("ggplot2")
R stöder listor, som kan hålla blandade typer, och miljöer som definierar variabelscop.
my_list <- list(name="Alice", age=25, height=5.5)
Strängar i R kan manipuleras med hjälp av inbyggda funktioner som paste()
för sammanfogning.
greeting <- paste("Hej", "Världen")
R använder vektoriserade operationer som möjliggör batchbearbetning på datastrukturer.
squared <- numbers^2
Faktorer används för att hantera kategoriska data, vilket gör att R kan behandla dem på rätt sätt under analys.
categories <- factor(c("Hög", "Mellan", "Låg"))
Flera IDE:er är populära bland R-utvecklare:
R fungerar som ett tolkat språk med hjälp av R-tolken, vilket möjliggör omedelbar exekvering av R-kod. R-tools paketet tillhandahåller de nödvändiga komponenterna för att bygga R-paket om du är intresserad av att dela din kod.
Typiskt är ett R-projekt strukturerat med skript i en R/
-mapp, data i en data/
-mapp och dokumentation i en docs/
-mapp. Användare kan kontrollera projektet med versionshanteringssystem som Git.
R används inom olika områden:
caret
och randomForest
.ggplot2
.När R jämförs med andra språk som Python, är R specialiserat för statistisk analys och visualisering. Python erbjuder ett bredare tillämpningsområde men integreras alltmer med datavetenskap genom bibliotek som Pandas och NumPy. C++ erbjuder generellt snabbare exekvering men saknar R:s statistiska kapabiliteter.
Java erbjuder robusta företagslösningar, medan R utmärker sig i snabb analys och forskning. Språk som SAS eller MATLAB är också skräddarsydda för statistisk analys men är inte öppen källkod, medan R blomstrar på community-bidrag.
För att översätta R-kod till andra språk kan befintliga käll-till-käll översättningsverktyg som Rcpp för R till C++ vara fördelaktiga för prestanda. Dessutom kan användare utforska bibliotek som underlättar översättningar till Python, såsom rpy2
, som möjliggör integration av R-funktioner och data frames i Python-skript.
Dessutom kan verktyg som reticulate
hjälpa till att integrera R i Python-miljöer, vilket möjliggör användning av R tillsammans med Python-bibliotek sömlöst.