R

Erik Bülow
citation()
To cite R in publications use:

  R Core Team (2023). _R: A Language and Environment for Statistical
  Computing_. R Foundation for Statistical Computing, Vienna, Austria.
  <https://www.R-project.org/>.

A BibTeX entry for LaTeX users is

  @Manual{,
    title = {R: A Language and Environment for Statistical Computing},
    author = {{R Core Team}},
    organization = {R Foundation for Statistical Computing},
    address = {Vienna, Austria},
    year = {2023},
    url = {https://www.R-project.org/},
  }

We have invested a lot of time and effort in creating R, please cite it
when using it for data analysis. See also 'citation("pkgname")' for
citing R packages.

Programeringsspråk

  • Öpen källkod: gratis öl och yttrandefrihet!

    • Akademiskt statistikverktyg (jmfr SAS inom läkemedelsindustrin och Python inom “ML/Data science”)
  • v. 1 släpptes 2020-02-29.

  • Version 4.3.2 (“Eye Holes”) släpptes 2023-10-23

  • Terminalbaserat skriptspråk men ofta kombinerat med RStudio (Posit)1

Interaktiv användning

Kan användas som terminalbaserad (mini)räknare

1+1
[1] 2
pi
[1] 3.141593
log(exp(1))
[1] 1
cos(pi) + 42 / 26 - atan(37)
[1] -0.9283913
print("Hej på dig!")
[1] "Hej på dig!"

Tilldelning/återanvändning

Det som skrivs i konsolen “printas” direkt.

Det man vill spara tilldelas med <- 1

(x <- 1)
[1] 1
(y <- 2)
[1] 2
(z <- x + y)
[1] 3

Case sensitive (ABC != abc != Abc != aBc != …)

Funktioner

  • Funktioner används för att göra saker med data.

  • Skriver man namnet_på_funktionen ser man hur den är definierad (öppen källkod; överkurs)

  • Skriver man parenteser efter så anropar man funktionen: namnet_på_funktionen()

  • De flesta funktioner har ett eller flera argument namnet_på_funktionen(a = x, b = y, c = z)

  • Dessa används dels för att förmedla vilken data funktionen ska användas med, dels för andra val

  • Skriv ?funktionsnamn i konsolen (eller tryck F1) för att läsa hur en funktion använda

Egna funktioner

function() {} # En namnlös function som inte gör ngt
function() {}
strunt_funktion <- function() {} # En namngiven funktion som inte gör ngt
strunt_funktion()
NULL
hello_world <- function() "Hello world!" # En funktion som hälsar
hello_world()
[1] "Hello world!"
hello_you <- function(who) paste0("Hello ", who, "!")
hello_you("Svenne Banan")
[1] "Hello Svenne Banan!"
addera <- function(x, y) x + y # funktion som adderar två argument
addera(2, 3)
[1] 5
addera(1:10, 8) # funkar automatiskt med vektorer
 [1]  9 10 11 12 13 14 15 16 17 18
addera(Sys.Date(), 1) # Viklen dag är det imorgon?
[1] "2023-11-23"

Vektorer

1 # numeriskt värde (eg. vektor av längd = 1)
[1] 1
c(1, 1, 2, 3, 5, 8) # numerisk vektor
[1] 1 1 2 3 5 8
1:10 # numerisk vektor 1-10
 [1]  1  2  3  4  5  6  7  8  9 10
c("hej", "på", "dig") # character vector
[1] "hej" "på"  "dig"
factor(c(2, 3, 1), 1:3, c("foo", "bar", "baz")) # kategorisk variabel
[1] bar baz foo
Levels: foo bar baz
as.Date(c("1985-05-04", "2023-11-22", "2024-01-26")) # datum
[1] "1985-05-04" "2023-11-22" "2024-01-26"
c(TRUE, FALSE, NA) # boolsk/logisk vektor
[1]  TRUE FALSE    NA

Data frame

Datastruktur som liknar Excel-blad eller data i SPSS.

Kolumner består av vektorer av olika sorter.

iris # printa data frame i konsolen
View(iris) # Öppna en mer grafisk struktur
tail(iris) # titta på de sista 6 raderna
str(iris) # få information om strukturen
head(iris, 5) # Visa 5 första raderna
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa

Skript

  • Bäst att inte skriva direkt i konsolen utan i en textfil som sparas regelbundet.

  • Döp den till vad_du_vill.R

  • Dock rekommenderat att filnamnet (inkl överordnade mappar) endast har tecken A-Z, a-z, 0-9 resp “_”

  • Allt i skriptet är R-kod utom rader som inleds med #. Dessa är kommentarer till mänskliga läsare (inkl ditt eget framtida jag).

  • Inte så noga med mellanslag/tabbar/radlängder etc i början men https://style.tidyverse.org/ rekommenderas för större projekt!

Quarto

  • Blanda kommentarer/R-kod/figurer/tabeller i ett och samma dokument

  • Fungerar lite som en vanlig orbehandlare

  • Denna presentation är gjord på detta sätt!

Projekt

  • Rekommenderas att använda en vald katalog som “Projekt” i RStudio. Då vet man alltid var man befinner sig.

  • Viktigt när man läser in filer (data) eller sparar resultat (figurer/tabeller/rapporter).

  • R startas alltid med ett “working directory” i en mapp/katalog på datorn (t ex den mapp där en R-fil man dubbelklickat på ligger eller där RStudio-projektet finns).

getwd()
[1] "/Users/xbuler/Documents/undervisning/LÄA110/R_labb"

Egen data

  • Ofta lättast sköta själva datainmatningen/förberedelsen i Excel, SPSS eller annat program.

  • Spara filen i “RStudio-projektet” t ex i en undermapp “data”.

  • Importera data via grafiska gränssnittet i RStudio

  • Kopiera genererade inläsningskommandon till skriptfilen.

Paket

  • Alla funktioner (med mera) finns i paket.

  • Några paket kommer förinstallerade.

  • Detta behöver man (nästan aldrig) tänka på!

base

?base
ls("package:base")
   [1] "-"                                  "-.Date"                            
   [3] "-.POSIXt"                           ":"                                 
   [5] "::"                                 ":::"                               
   [7] "!"                                  "!.hexmode"                         
   [9] "!.octmode"                          "!="                                
  [11] "("                                  "["                                 
  [13] "[.AsIs"                             "[.data.frame"                      
  [15] "[.Date"                             "[.difftime"                        
  [17] "[.Dlist"                            "[.DLLInfoList"                     
  [19] "[.factor"                           "[.hexmode"                         
  [21] "[.listof"                           "[.noquote"                         
  [23] "[.numeric_version"                  "[.octmode"                         
  [25] "[.POSIXct"                          "[.POSIXlt"                         
  [27] "[.simple.list"                      "[.table"                           
  [29] "[.warnings"                         "[["                                
  [31] "[[.data.frame"                      "[[.Date"                           
  [33] "[[.factor"                          "[[.numeric_version"                
  [35] "[[.POSIXct"                         "[[.POSIXlt"                        
  [37] "[[<-"                               "[[<-.data.frame"                   
  [39] "[[<-.factor"                        "[[<-.numeric_version"              
  [41] "[[<-.POSIXlt"                       "[<-"                               
  [43] "[<-.data.frame"                     "[<-.Date"                          
  [45] "[<-.difftime"                       "[<-.factor"                        
  [47] "[<-.numeric_version"                "[<-.POSIXct"                       
  [49] "[<-.POSIXlt"                        "{"                                 
  [51] "@"                                  "@<-"                               
  [53] "*"                                  "*.difftime"                        
  [55] "/"                                  "/.difftime"                        
  [57] "&"                                  "&.hexmode"                         
  [59] "&.octmode"                          "&&"                                
  [61] "%*%"                                "%/%"                               
  [63] "%%"                                 "%in%"                              
  [65] "%o%"                                "%x%"                               
  [67] "^"                                  "+"                                 
  [69] "+.Date"                             "+.POSIXt"                          
  [71] "<"                                  "<-"                                
  [73] "<<-"                                "<="                                
  [75] "="                                  "=="                                
  [77] ">"                                  ">="                                
  [79] "|"                                  "|.hexmode"                         
  [81] "|.octmode"                          "||"                                
  [83] "~"                                  "$"                                 
  [85] "$.DLLInfo"                          "$.package_version"                 
  [87] "$<-"                                "$<-.data.frame"                    
  [89] "$<-.POSIXlt"                        "abbreviate"                        
  [91] "abs"                                "acos"                              
  [93] "acosh"                              "activeBindingFunction"             
  [95] "addNA"                              "addTaskCallback"                   
  [97] "agrep"                              "agrepl"                            
  [99] "alist"                              "all"                               
 [101] "all.equal"                          "all.equal.character"               
 [103] "all.equal.default"                  "all.equal.environment"             
 [105] "all.equal.envRefClass"              "all.equal.factor"                  
 [107] "all.equal.formula"                  "all.equal.function"                
 [109] "all.equal.language"                 "all.equal.list"                    
 [111] "all.equal.numeric"                  "all.equal.POSIXt"                  
 [113] "all.equal.raw"                      "all.names"                         
 [115] "all.vars"                           "allowInterrupts"                   
 [117] "any"                                "anyDuplicated"                     
 [119] "anyDuplicated.array"                "anyDuplicated.data.frame"          
 [121] "anyDuplicated.default"              "anyDuplicated.matrix"              
 [123] "anyNA"                              "anyNA.data.frame"                  
 [125] "anyNA.numeric_version"              "anyNA.POSIXlt"                     
 [127] "aperm"                              "aperm.default"                     
 [129] "aperm.table"                        "append"                            
 [131] "apply"                              "Arg"                               
 [133] "args"                               "array"                             
 [135] "array2DF"                           "arrayInd"                          
 [137] "as.array"                           "as.array.default"                  
 [139] "as.call"                            "as.character"                      
 [141] "as.character.condition"             "as.character.Date"                 
 [143] "as.character.default"               "as.character.error"                
 [145] "as.character.factor"                "as.character.hexmode"              
 [147] "as.character.numeric_version"       "as.character.octmode"              
 [149] "as.character.POSIXt"                "as.character.srcref"               
 [151] "as.complex"                         "as.data.frame"                     
 [153] "as.data.frame.array"                "as.data.frame.AsIs"                
 [155] "as.data.frame.character"            "as.data.frame.complex"             
 [157] "as.data.frame.data.frame"           "as.data.frame.Date"                
 [159] "as.data.frame.default"              "as.data.frame.difftime"            
 [161] "as.data.frame.factor"               "as.data.frame.integer"             
 [163] "as.data.frame.list"                 "as.data.frame.logical"             
 [165] "as.data.frame.matrix"               "as.data.frame.model.matrix"        
 [167] "as.data.frame.noquote"              "as.data.frame.numeric"             
 [169] "as.data.frame.numeric_version"      "as.data.frame.ordered"             
 [171] "as.data.frame.POSIXct"              "as.data.frame.POSIXlt"             
 [173] "as.data.frame.raw"                  "as.data.frame.table"               
 [175] "as.data.frame.ts"                   "as.data.frame.vector"              
 [177] "as.Date"                            "as.Date.character"                 
 [179] "as.Date.default"                    "as.Date.factor"                    
 [181] "as.Date.numeric"                    "as.Date.POSIXct"                   
 [183] "as.Date.POSIXlt"                    "as.difftime"                       
 [185] "as.double"                          "as.double.difftime"                
 [187] "as.double.POSIXlt"                  "as.environment"                    
 [189] "as.expression"                      "as.expression.default"             
 [191] "as.factor"                          "as.function"                       
 [193] "as.function.default"                "as.hexmode"                        
 [195] "as.integer"                         "as.list"                           
 [197] "as.list.data.frame"                 "as.list.Date"                      
 [199] "as.list.default"                    "as.list.difftime"                  
 [201] "as.list.environment"                "as.list.factor"                    
 [203] "as.list.function"                   "as.list.numeric_version"           
 [205] "as.list.POSIXct"                    "as.list.POSIXlt"                   
 [207] "as.logical"                         "as.logical.factor"                 
 [209] "as.matrix"                          "as.matrix.data.frame"              
 [211] "as.matrix.default"                  "as.matrix.noquote"                 
 [213] "as.matrix.POSIXlt"                  "as.name"                           
 [215] "as.null"                            "as.null.default"                   
 [217] "as.numeric"                         "as.numeric_version"                
 [219] "as.octmode"                         "as.ordered"                        
 [221] "as.package_version"                 "as.pairlist"                       
 [223] "as.POSIXct"                         "as.POSIXct.Date"                   
 [225] "as.POSIXct.default"                 "as.POSIXct.numeric"                
 [227] "as.POSIXct.POSIXlt"                 "as.POSIXlt"                        
 [229] "as.POSIXlt.character"               "as.POSIXlt.Date"                   
 [231] "as.POSIXlt.default"                 "as.POSIXlt.factor"                 
 [233] "as.POSIXlt.numeric"                 "as.POSIXlt.POSIXct"                
 [235] "as.qr"                              "as.raw"                            
 [237] "as.single"                          "as.single.default"                 
 [239] "as.symbol"                          "as.table"                          
 [241] "as.table.default"                   "as.vector"                         
 [243] "as.vector.data.frame"               "as.vector.factor"                  
 [245] "as.vector.POSIXlt"                  "asin"                              
 [247] "asinh"                              "asNamespace"                       
 [249] "asplit"                             "asS3"                              
 [251] "asS4"                               "assign"                            
 [253] "atan"                               "atan2"                             
 [255] "atanh"                              "attach"                            
 [257] "attachNamespace"                    "attr"                              
 [259] "attr.all.equal"                     "attr<-"                            
 [261] "attributes"                         "attributes<-"                      
 [263] "autoload"                           "autoloader"                        
 [265] "backsolve"                          "balancePOSIXlt"                    
 [267] "baseenv"                            "basename"                          
 [269] "besselI"                            "besselJ"                           
 [271] "besselK"                            "besselY"                           
 [273] "beta"                               "bindingIsActive"                   
 [275] "bindingIsLocked"                    "bindtextdomain"                    
 [277] "bitwAnd"                            "bitwNot"                           
 [279] "bitwOr"                             "bitwShiftL"                        
 [281] "bitwShiftR"                         "bitwXor"                           
 [283] "body"                               "body<-"                            
 [285] "bquote"                             "break"                             
 [287] "browser"                            "browserCondition"                  
 [289] "browserSetDebug"                    "browserText"                       
 [291] "builtins"                           "by"                                
 [293] "by.data.frame"                      "by.default"                        
 [295] "bzfile"                             "c"                                 
 [297] "c.Date"                             "c.difftime"                        
 [299] "c.factor"                           "c.noquote"                         
 [301] "c.numeric_version"                  "c.POSIXct"                         
 [303] "c.POSIXlt"                          "c.warnings"                        
 [305] "call"                               "callCC"                            
 [307] "capabilities"                       "casefold"                          
 [309] "cat"                                "cbind"                             
 [311] "cbind.data.frame"                   "ceiling"                           
 [313] "char.expand"                        "character"                         
 [315] "charmatch"                          "charToRaw"                         
 [317] "chartr"                             "chkDots"                           
 [319] "chol"                               "chol.default"                      
 [321] "chol2inv"                           "choose"                            
 [323] "chooseOpsMethod"                    "chooseOpsMethod.default"           
 [325] "class"                              "class<-"                           
 [327] "clearPushBack"                      "close"                             
 [329] "close.connection"                   "close.srcfile"                     
 [331] "close.srcfilealias"                 "closeAllConnections"               
 [333] "col"                                "colMeans"                          
 [335] "colnames"                           "colnames<-"                        
 [337] "colSums"                            "commandArgs"                       
 [339] "comment"                            "comment<-"                         
 [341] "complex"                            "computeRestarts"                   
 [343] "conditionCall"                      "conditionCall.condition"           
 [345] "conditionMessage"                   "conditionMessage.condition"        
 [347] "conflictRules"                      "conflicts"                         
 [349] "Conj"                               "contributors"                      
 [351] "cos"                                "cosh"                              
 [353] "cospi"                              "crossprod"                         
 [355] "Cstack_info"                        "cummax"                            
 [357] "cummin"                             "cumprod"                           
 [359] "cumsum"                             "curlGetHeaders"                    
 [361] "cut"                                "cut.Date"                          
 [363] "cut.default"                        "cut.POSIXt"                        
 [365] "data.class"                         "data.frame"                        
 [367] "data.matrix"                        "date"                              
 [369] "debug"                              "debuggingState"                    
 [371] "debugonce"                          "default.stringsAsFactors"          
 [373] "delayedAssign"                      "deparse"                           
 [375] "deparse1"                           "det"                               
 [377] "detach"                             "determinant"                       
 [379] "determinant.matrix"                 "dget"                              
 [381] "diag"                               "diag<-"                            
 [383] "diff"                               "diff.Date"                         
 [385] "diff.default"                       "diff.difftime"                     
 [387] "diff.POSIXt"                        "difftime"                          
 [389] "digamma"                            "dim"                               
 [391] "dim.data.frame"                     "dim<-"                             
 [393] "dimnames"                           "dimnames.data.frame"               
 [395] "dimnames<-"                         "dimnames<-.data.frame"             
 [397] "dir"                                "dir.create"                        
 [399] "dir.exists"                         "dirname"                           
 [401] "do.call"                            "dontCheck"                         
 [403] "double"                             "dput"                              
 [405] "dQuote"                             "drop"                              
 [407] "droplevels"                         "droplevels.data.frame"             
 [409] "droplevels.factor"                  "dump"                              
 [411] "duplicated"                         "duplicated.array"                  
 [413] "duplicated.data.frame"              "duplicated.default"                
 [415] "duplicated.matrix"                  "duplicated.numeric_version"        
 [417] "duplicated.POSIXlt"                 "duplicated.warnings"               
 [419] "dyn.load"                           "dyn.unload"                        
 [421] "dynGet"                             "eapply"                            
 [423] "eigen"                              "emptyenv"                          
 [425] "enc2native"                         "enc2utf8"                          
 [427] "encodeString"                       "Encoding"                          
 [429] "Encoding<-"                         "endsWith"                          
 [431] "enquote"                            "env.profile"                       
 [433] "environment"                        "environment<-"                     
 [435] "environmentIsLocked"                "environmentName"                   
 [437] "errorCondition"                     "eval"                              
 [439] "eval.parent"                        "evalq"                             
 [441] "exists"                             "exp"                               
 [443] "expand.grid"                        "expm1"                             
 [445] "expression"                         "extSoftVersion"                    
 [447] "F"                                  "factor"                            
 [449] "factorial"                          "fifo"                              
 [451] "file"                               "file.access"                       
 [453] "file.append"                        "file.choose"                       
 [455] "file.copy"                          "file.create"                       
 [457] "file.exists"                        "file.info"                         
 [459] "file.link"                          "file.mode"                         
 [461] "file.mtime"                         "file.path"                         
 [463] "file.remove"                        "file.rename"                       
 [465] "file.show"                          "file.size"                         
 [467] "file.symlink"                       "Filter"                            
 [469] "Find"                               "find.package"                      
 [471] "findInterval"                       "findPackageEnv"                    
 [473] "findRestart"                        "floor"                             
 [475] "flush"                              "flush.connection"                  
 [477] "for"                                "force"                             
 [479] "forceAndCall"                       "formals"                           
 [481] "formals<-"                          "format"                            
 [483] "format.AsIs"                        "format.data.frame"                 
 [485] "format.Date"                        "format.default"                    
 [487] "format.difftime"                    "format.factor"                     
 [489] "format.hexmode"                     "format.info"                       
 [491] "format.libraryIQR"                  "format.numeric_version"            
 [493] "format.octmode"                     "format.packageInfo"                
 [495] "format.POSIXct"                     "format.POSIXlt"                    
 [497] "format.pval"                        "format.summaryDefault"             
 [499] "formatC"                            "formatDL"                          
 [501] "forwardsolve"                       "function"                          
 [503] "gamma"                              "gc"                                
 [505] "gc.time"                            "gcinfo"                            
 [507] "gctorture"                          "gctorture2"                        
 [509] "get"                                "get0"                              
 [511] "getAllConnections"                  "getCallingDLL"                     
 [513] "getCallingDLLe"                     "getConnection"                     
 [515] "getDLLRegisteredRoutines"           "getDLLRegisteredRoutines.character"
 [517] "getDLLRegisteredRoutines.DLLInfo"   "getElement"                        
 [519] "geterrmessage"                      "getExportedValue"                  
 [521] "getHook"                            "getLoadedDLLs"                     
 [523] "getNamespace"                       "getNamespaceExports"               
 [525] "getNamespaceImports"                "getNamespaceInfo"                  
 [527] "getNamespaceName"                   "getNamespaceUsers"                 
 [529] "getNamespaceVersion"                "getNativeSymbolInfo"               
 [531] "getOption"                          "getRversion"                       
 [533] "getSrcLines"                        "getTaskCallbackNames"              
 [535] "gettext"                            "gettextf"                          
 [537] "getwd"                              "gl"                                
 [539] "globalCallingHandlers"              "globalenv"                         
 [541] "gregexec"                           "gregexpr"                          
 [543] "grep"                               "grepl"                             
 [545] "grepRaw"                            "grouping"                          
 [547] "gsub"                               "gzcon"                             
 [549] "gzfile"                             "I"                                 
 [551] "iconv"                              "iconvlist"                         
 [553] "icuGetCollate"                      "icuSetCollate"                     
 [555] "identical"                          "identity"                          
 [557] "if"                                 "ifelse"                            
 [559] "Im"                                 "importIntoEnv"                     
 [561] "infoRDS"                            "inherits"                          
 [563] "integer"                            "interaction"                       
 [565] "interactive"                        "intersect"                         
 [567] "intToBits"                          "intToUtf8"                         
 [569] "inverse.rle"                        "invisible"                         
 [571] "invokeRestart"                      "invokeRestartInteractively"        
 [573] "is.array"                           "is.atomic"                         
 [575] "is.call"                            "is.character"                      
 [577] "is.complex"                         "is.data.frame"                     
 [579] "is.double"                          "is.element"                        
 [581] "is.environment"                     "is.expression"                     
 [583] "is.factor"                          "is.finite"                         
 [585] "is.finite.POSIXlt"                  "is.function"                       
 [587] "is.infinite"                        "is.infinite.POSIXlt"               
 [589] "is.integer"                         "is.language"                       
 [591] "is.list"                            "is.loaded"                         
 [593] "is.logical"                         "is.matrix"                         
 [595] "is.na"                              "is.na.data.frame"                  
 [597] "is.na.numeric_version"              "is.na.POSIXlt"                     
 [599] "is.na<-"                            "is.na<-.default"                   
 [601] "is.na<-.factor"                     "is.na<-.numeric_version"           
 [603] "is.name"                            "is.nan"                            
 [605] "is.nan.POSIXlt"                     "is.null"                           
 [607] "is.numeric"                         "is.numeric_version"                
 [609] "is.numeric.Date"                    "is.numeric.difftime"               
 [611] "is.numeric.POSIXt"                  "is.object"                         
 [613] "is.ordered"                         "is.package_version"                
 [615] "is.pairlist"                        "is.primitive"                      
 [617] "is.qr"                              "is.R"                              
 [619] "is.raw"                             "is.recursive"                      
 [621] "is.single"                          "is.symbol"                         
 [623] "is.table"                           "is.unsorted"                       
 [625] "is.vector"                          "isa"                               
 [627] "isatty"                             "isBaseNamespace"                   
 [629] "isdebugged"                         "isFALSE"                           
 [631] "isIncomplete"                       "isNamespace"                       
 [633] "isNamespaceLoaded"                  "ISOdate"                           
 [635] "ISOdatetime"                        "isOpen"                            
 [637] "isRestart"                          "isS4"                              
 [639] "isSeekable"                         "isSymmetric"                       
 [641] "isSymmetric.matrix"                 "isTRUE"                            
 [643] "jitter"                             "julian"                            
 [645] "julian.Date"                        "julian.POSIXt"                     
 [647] "kappa"                              "kappa.default"                     
 [649] "kappa.lm"                           "kappa.qr"                          
 [651] "kronecker"                          "l10n_info"                         
 [653] "La_library"                         "La_version"                        
 [655] "La.svd"                             "labels"                            
 [657] "labels.default"                     "lapply"                            
 [659] "lazyLoad"                           "lazyLoadDBexec"                    
 [661] "lazyLoadDBfetch"                    "lbeta"                             
 [663] "lchoose"                            "length"                            
 [665] "length.POSIXlt"                     "length<-"                          
 [667] "length<-.Date"                      "length<-.difftime"                 
 [669] "length<-.factor"                    "length<-.POSIXct"                  
 [671] "length<-.POSIXlt"                   "lengths"                           
 [673] "letters"                            "LETTERS"                           
 [675] "levels"                             "levels.default"                    
 [677] "levels<-"                           "levels<-.factor"                   
 [679] "lfactorial"                         "lgamma"                            
 [681] "libcurlVersion"                     "library"                           
 [683] "library.dynam"                      "library.dynam.unload"              
 [685] "licence"                            "license"                           
 [687] "list"                               "list.dirs"                         
 [689] "list.files"                         "list2DF"                           
 [691] "list2env"                           "load"                              
 [693] "loadedNamespaces"                   "loadingNamespaceInfo"              
 [695] "loadNamespace"                      "local"                             
 [697] "lockBinding"                        "lockEnvironment"                   
 [699] "log"                                "log10"                             
 [701] "log1p"                              "log2"                              
 [703] "logb"                               "logical"                           
 [705] "lower.tri"                          "ls"                                
 [707] "make.names"                         "make.unique"                       
 [709] "makeActiveBinding"                  "Map"                               
 [711] "mapply"                             "margin.table"                      
 [713] "marginSums"                         "mat.or.vec"                        
 [715] "match"                              "match.arg"                         
 [717] "match.call"                         "match.fun"                         
 [719] "Math.data.frame"                    "Math.Date"                         
 [721] "Math.difftime"                      "Math.factor"                       
 [723] "Math.POSIXt"                        "matrix"                            
 [725] "max"                                "max.col"                           
 [727] "mean"                               "mean.Date"                         
 [729] "mean.default"                       "mean.difftime"                     
 [731] "mean.POSIXct"                       "mean.POSIXlt"                      
 [733] "mem.maxNSize"                       "mem.maxVSize"                      
 [735] "memCompress"                        "memDecompress"                     
 [737] "memory.profile"                     "merge"                             
 [739] "merge.data.frame"                   "merge.default"                     
 [741] "message"                            "mget"                              
 [743] "min"                                "missing"                           
 [745] "Mod"                                "mode"                              
 [747] "mode<-"                             "month.abb"                         
 [749] "month.name"                         "months"                            
 [751] "months.Date"                        "months.POSIXt"                     
 [753] "mostattributes<-"                   "mtfrm"                             
 [755] "mtfrm.default"                      "nameOfClass"                       
 [757] "nameOfClass.default"                "names"                             
 [759] "names.POSIXlt"                      "names<-"                           
 [761] "names<-.POSIXlt"                    "namespaceExport"                   
 [763] "namespaceImport"                    "namespaceImportClasses"            
 [765] "namespaceImportFrom"                "namespaceImportMethods"            
 [767] "nargs"                              "nchar"                             
 [769] "ncol"                               "NCOL"                              
 [771] "Negate"                             "new.env"                           
 [773] "next"                               "NextMethod"                        
 [775] "ngettext"                           "nlevels"                           
 [777] "noquote"                            "norm"                              
 [779] "normalizePath"                      "nrow"                              
 [781] "NROW"                               "nullfile"                          
 [783] "numeric"                            "numeric_version"                   
 [785] "numToBits"                          "numToInts"                         
 [787] "nzchar"                             "objects"                           
 [789] "oldClass"                           "oldClass<-"                        
 [791] "OlsonNames"                         "on.exit"                           
 [793] "open"                               "open.connection"                   
 [795] "open.srcfile"                       "open.srcfilealias"                 
 [797] "open.srcfilecopy"                   "Ops.data.frame"                    
 [799] "Ops.Date"                           "Ops.difftime"                      
 [801] "Ops.factor"                         "Ops.numeric_version"               
 [803] "Ops.ordered"                        "Ops.POSIXt"                        
 [805] "options"                            "order"                             
 [807] "ordered"                            "outer"                             
 [809] "package_version"                    "packageEvent"                      
 [811] "packageHasNamespace"                "packageNotFoundError"              
 [813] "packageStartupMessage"              "packBits"                          
 [815] "pairlist"                           "parent.env"                        
 [817] "parent.env<-"                       "parent.frame"                      
 [819] "parse"                              "parseNamespaceFile"                
 [821] "paste"                              "paste0"                            
 [823] "path.expand"                        "path.package"                      
 [825] "pcre_config"                        "pi"                                
 [827] "pipe"                               "plot"                              
 [829] "pmatch"                             "pmax"                              
 [831] "pmax.int"                           "pmin"                              
 [833] "pmin.int"                           "polyroot"                          
 [835] "pos.to.env"                         "Position"                          
 [837] "pretty"                             "pretty.default"                    
 [839] "prettyNum"                          "print"                             
 [841] "print.AsIs"                         "print.by"                          
 [843] "print.condition"                    "print.connection"                  
 [845] "print.data.frame"                   "print.Date"                        
 [847] "print.default"                      "print.difftime"                    
 [849] "print.Dlist"                        "print.DLLInfo"                     
 [851] "print.DLLInfoList"                  "print.DLLRegisteredRoutines"       
 [853] "print.eigen"                        "print.factor"                      
 [855] "print.function"                     "print.hexmode"                     
 [857] "print.libraryIQR"                   "print.listof"                      
 [859] "print.NativeRoutineList"            "print.noquote"                     
 [861] "print.numeric_version"              "print.octmode"                     
 [863] "print.packageInfo"                  "print.POSIXct"                     
 [865] "print.POSIXlt"                      "print.proc_time"                   
 [867] "print.restart"                      "print.rle"                         
 [869] "print.simple.list"                  "print.srcfile"                     
 [871] "print.srcref"                       "print.summary.table"               
 [873] "print.summary.warnings"             "print.summaryDefault"              
 [875] "print.table"                        "print.warnings"                    
 [877] "prmatrix"                           "proc.time"                         
 [879] "prod"                               "prop.table"                        
 [881] "proportions"                        "provideDimnames"                   
 [883] "psigamma"                           "pushBack"                          
 [885] "pushBackLength"                     "q"                                 
 [887] "qr"                                 "qr.coef"                           
 [889] "qr.default"                         "qr.fitted"                         
 [891] "qr.Q"                               "qr.qty"                            
 [893] "qr.qy"                              "qr.R"                              
 [895] "qr.resid"                           "qr.solve"                          
 [897] "qr.X"                               "quarters"                          
 [899] "quarters.Date"                      "quarters.POSIXt"                   
 [901] "quit"                               "quote"                             
 [903] "R_compiled_by"                      "R_system_version"                  
 [905] "R.home"                             "R.version"                         
 [907] "R.Version"                          "R.version.string"                  
 [909] "range"                              "range.default"                     
 [911] "rank"                               "rapply"                            
 [913] "raw"                                "rawConnection"                     
 [915] "rawConnectionValue"                 "rawShift"                          
 [917] "rawToBits"                          "rawToChar"                         
 [919] "rbind"                              "rbind.data.frame"                  
 [921] "rcond"                              "Re"                                
 [923] "read.dcf"                           "readBin"                           
 [925] "readChar"                           "readline"                          
 [927] "readLines"                          "readRDS"                           
 [929] "readRenviron"                       "Recall"                            
 [931] "Reduce"                             "reg.finalizer"                     
 [933] "regexec"                            "regexpr"                           
 [935] "registerS3method"                   "registerS3methods"                 
 [937] "regmatches"                         "regmatches<-"                      
 [939] "remove"                             "removeTaskCallback"                
 [941] "rep"                                "rep_len"                           
 [943] "rep.Date"                           "rep.difftime"                      
 [945] "rep.factor"                         "rep.int"                           
 [947] "rep.numeric_version"                "rep.POSIXct"                       
 [949] "rep.POSIXlt"                        "repeat"                            
 [951] "replace"                            "replicate"                         
 [953] "require"                            "requireNamespace"                  
 [955] "restartDescription"                 "restartFormals"                    
 [957] "retracemem"                         "return"                            
 [959] "returnValue"                        "rev"                               
 [961] "rev.default"                        "rle"                               
 [963] "rm"                                 "RNGkind"                           
 [965] "RNGversion"                         "round"                             
 [967] "round.Date"                         "round.POSIXt"                      
 [969] "row"                                "row.names"                         
 [971] "row.names.data.frame"               "row.names.default"                 
 [973] "row.names<-"                        "row.names<-.data.frame"            
 [975] "row.names<-.default"                "rowMeans"                          
 [977] "rownames"                           "rownames<-"                        
 [979] "rowsum"                             "rowsum.data.frame"                 
 [981] "rowsum.default"                     "rowSums"                           
 [983] "sample"                             "sample.int"                        
 [985] "sapply"                             "save"                              
 [987] "save.image"                         "saveRDS"                           
 [989] "scale"                              "scale.default"                     
 [991] "scan"                               "search"                            
 [993] "searchpaths"                        "seek"                              
 [995] "seek.connection"                    "seq"                               
 [997] "seq_along"                          "seq_len"                           
 [999] "seq.Date"                           "seq.default"                       
[1001] "seq.int"                            "seq.POSIXt"                        
[1003] "sequence"                           "sequence.default"                  
[1005] "serialize"                          "serverSocket"                      
[1007] "set.seed"                           "setdiff"                           
[1009] "setequal"                           "setHook"                           
[1011] "setNamespaceInfo"                   "setSessionTimeLimit"               
[1013] "setTimeLimit"                       "setwd"                             
[1015] "showConnections"                    "shQuote"                           
[1017] "sign"                               "signalCondition"                   
[1019] "signif"                             "simpleCondition"                   
[1021] "simpleError"                        "simpleMessage"                     
[1023] "simpleWarning"                      "simplify2array"                    
[1025] "sin"                                "single"                            
[1027] "sinh"                               "sink"                              
[1029] "sink.number"                        "sinpi"                             
[1031] "slice.index"                        "socketAccept"                      
[1033] "socketConnection"                   "socketSelect"                      
[1035] "socketTimeout"                      "solve"                             
[1037] "solve.default"                      "solve.qr"                          
[1039] "sort"                               "sort.default"                      
[1041] "sort.int"                           "sort.list"                         
[1043] "sort.POSIXlt"                       "source"                            
[1045] "split"                              "split.data.frame"                  
[1047] "split.Date"                         "split.default"                     
[1049] "split.POSIXct"                      "split<-"                           
[1051] "split<-.data.frame"                 "split<-.default"                   
[1053] "sprintf"                            "sqrt"                              
[1055] "sQuote"                             "srcfile"                           
[1057] "srcfilealias"                       "srcfilecopy"                       
[1059] "srcref"                             "standardGeneric"                   
[1061] "startsWith"                         "stderr"                            
[1063] "stdin"                              "stdout"                            
[1065] "stop"                               "stopifnot"                         
[1067] "storage.mode"                       "storage.mode<-"                    
[1069] "str2expression"                     "str2lang"                          
[1071] "strftime"                           "strptime"                          
[1073] "strrep"                             "strsplit"                          
[1075] "strtoi"                             "strtrim"                           
[1077] "structure"                          "strwrap"                           
[1079] "sub"                                "subset"                            
[1081] "subset.data.frame"                  "subset.default"                    
[1083] "subset.matrix"                      "substitute"                        
[1085] "substr"                             "substr<-"                          
[1087] "substring"                          "substring<-"                       
[1089] "sum"                                "summary"                           
[1091] "summary.connection"                 "summary.data.frame"                
[1093] "Summary.data.frame"                 "summary.Date"                      
[1095] "Summary.Date"                       "summary.default"                   
[1097] "Summary.difftime"                   "summary.factor"                    
[1099] "Summary.factor"                     "summary.matrix"                    
[1101] "Summary.numeric_version"            "Summary.ordered"                   
[1103] "summary.POSIXct"                    "Summary.POSIXct"                   
[1105] "summary.POSIXlt"                    "Summary.POSIXlt"                   
[1107] "summary.proc_time"                  "summary.srcfile"                   
[1109] "summary.srcref"                     "summary.table"                     
[1111] "summary.warnings"                   "suppressMessages"                  
[1113] "suppressPackageStartupMessages"     "suppressWarnings"                  
[1115] "suspendInterrupts"                  "svd"                               
[1117] "sweep"                              "switch"                            
[1119] "sys.call"                           "sys.calls"                         
[1121] "Sys.chmod"                          "Sys.Date"                          
[1123] "sys.frame"                          "sys.frames"                        
[1125] "sys.function"                       "Sys.getenv"                        
[1127] "Sys.getlocale"                      "Sys.getpid"                        
[1129] "Sys.glob"                           "Sys.info"                          
[1131] "sys.load.image"                     "Sys.localeconv"                    
[1133] "sys.nframe"                         "sys.on.exit"                       
[1135] "sys.parent"                         "sys.parents"                       
[1137] "Sys.readlink"                       "sys.save.image"                    
[1139] "Sys.setenv"                         "Sys.setFileTime"                   
[1141] "Sys.setLanguage"                    "Sys.setlocale"                     
[1143] "Sys.sleep"                          "sys.source"                        
[1145] "sys.status"                         "Sys.time"                          
[1147] "Sys.timezone"                       "Sys.umask"                         
[1149] "Sys.unsetenv"                       "Sys.which"                         
[1151] "system"                             "system.file"                       
[1153] "system.time"                        "system2"                           
[1155] "t"                                  "T"                                 
[1157] "t.data.frame"                       "t.default"                         
[1159] "table"                              "tabulate"                          
[1161] "tan"                                "tanh"                              
[1163] "tanpi"                              "tapply"                            
[1165] "taskCallbackManager"                "tcrossprod"                        
[1167] "tempdir"                            "tempfile"                          
[1169] "textConnection"                     "textConnectionValue"               
[1171] "tolower"                            "topenv"                            
[1173] "toString"                           "toString.default"                  
[1175] "toupper"                            "trace"                             
[1177] "traceback"                          "tracemem"                          
[1179] "tracingState"                       "transform"                         
[1181] "transform.data.frame"               "transform.default"                 
[1183] "trigamma"                           "trimws"                            
[1185] "trunc"                              "trunc.Date"                        
[1187] "trunc.POSIXt"                       "truncate"                          
[1189] "truncate.connection"                "try"                               
[1191] "tryCatch"                           "tryInvokeRestart"                  
[1193] "typeof"                             "unCfillPOSIXlt"                    
[1195] "unclass"                            "undebug"                           
[1197] "union"                              "unique"                            
[1199] "unique.array"                       "unique.data.frame"                 
[1201] "unique.default"                     "unique.matrix"                     
[1203] "unique.numeric_version"             "unique.POSIXlt"                    
[1205] "unique.warnings"                    "units"                             
[1207] "units.difftime"                     "units<-"                           
[1209] "units<-.difftime"                   "unix.time"                         
[1211] "unlink"                             "unlist"                            
[1213] "unloadNamespace"                    "unlockBinding"                     
[1215] "unname"                             "unserialize"                       
[1217] "unsplit"                            "untrace"                           
[1219] "untracemem"                         "unz"                               
[1221] "upper.tri"                          "url"                               
[1223] "UseMethod"                          "utf8ToInt"                         
[1225] "validEnc"                           "validUTF8"                         
[1227] "vapply"                             "vector"                            
[1229] "Vectorize"                          "version"                           
[1231] "warning"                            "warningCondition"                  
[1233] "warnings"                           "weekdays"                          
[1235] "weekdays.Date"                      "weekdays.POSIXt"                   
[1237] "which"                              "which.max"                         
[1239] "which.min"                          "while"                             
[1241] "with"                               "with.default"                      
[1243] "withAutoprint"                      "withCallingHandlers"               
[1245] "within"                             "within.data.frame"                 
[1247] "within.list"                        "withRestarts"                      
[1249] "withVisible"                        "write"                             
[1251] "write.dcf"                          "writeBin"                          
[1253] "writeChar"                          "writeLines"                        
[1255] "xor"                                "xpdrows.data.frame"                
[1257] "xtfrm"                              "xtfrm.AsIs"                        
[1259] "xtfrm.data.frame"                   "xtfrm.Date"                        
[1261] "xtfrm.default"                      "xtfrm.difftime"                    
[1263] "xtfrm.factor"                       "xtfrm.numeric_version"             
[1265] "xtfrm.POSIXct"                      "xtfrm.POSIXlt"                     
[1267] "xzfile"                             "zapsmall"                          

CRAN

  • Kvalitetssäkrade och lättinstallerade tilläggspaket finns i The Comprehensive R Archive Network

  • Installera via grafiskt gränssnit (GUI): Packages > Install

  • eller kommando: install.packages("name_of_package")

Andra paketkällor (överkurs)

Använda funktioner från installerade paket

  • Installerade paket måste pekas ut explicit vid användning:

    • Ladda hela paketet (rekommenderas i början):

      • library("name_of_package") i början av skriptet

      • name_of_function(x, y, x) för att sedan anropa funktionen

    • Referera varje funktion explicit varje gång:

      • name_of_package::name_of_function()

Tibble

Delar alla egenskaper med data.frames men lite snyggare/modernare

library(tidyverse)
as_tibble(iris)
# A tibble: 150 × 5
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
          <dbl>       <dbl>        <dbl>       <dbl> <fct>  
 1          5.1         3.5          1.4         0.2 setosa 
 2          4.9         3            1.4         0.2 setosa 
 3          4.7         3.2          1.3         0.2 setosa 
 4          4.6         3.1          1.5         0.2 setosa 
 5          5           3.6          1.4         0.2 setosa 
 6          5.4         3.9          1.7         0.4 setosa 
 7          4.6         3.4          1.4         0.3 setosa 
 8          5           3.4          1.5         0.2 setosa 
 9          4.4         2.9          1.4         0.2 setosa 
10          4.9         3.1          1.5         0.1 setosa 
# ℹ 140 more rows
glimpse(iris)
Rows: 150
Columns: 5
$ Sepal.Length <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.…
$ Sepal.Width  <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.…
$ Petal.Length <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.…
$ Petal.Width  <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.…
$ Species      <fct> setosa, setosa, setosa, setosa, setosa, setosa, setosa, s…

Pipe

|> (eller tidigare %>%)

# Alt 1: Modifiera ett objekt stegvis med massa nya nammn på vägen
steg1 <- foo(x)
steg2 <- bar(steg1)
steg3 <- baz(steg2)

# Alt 2: Funktion i funktion i funktion
steg3 <- baz(bar(foo(x)))

# Alt 3: Med |> (lättare att läsa och skriva)
steg3 <- x |> foo() |> bar() |> baz()

Att lära sig

Överkurs

Om du programmerat tidigare:

  • interaktivt skriptspråk (kräver ingen kompilering)

  • Ej statistik typat (extremt flexibelt men lätt att skjuta sig själv i foten)

  • Nyttjar viss C/C++/Fortran-kod i bakgrunden

• Everything that exists is an object.
• Everything that happens is a function call.”

— John Chambers