1 / 42

R basics workshop

R basics workshop. J. Sebasti án Tello Iván Jiménez. Center for Conservation and Sustainable Development Missouri Botanical Garden. 3 . Objects. Object are mainly used to hold data. In R, an object is a pointer to a piece of memory that contains some information

rozene
Télécharger la présentation

R basics workshop

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. R basics workshop J. Sebastián Tello Iván Jiménez Center forConservation and SustainableDevelopment Missouri Botanical Garden

  2. 3. Objects

  3. Object are mainly used to hold data • In R, an object is a pointer to a piece of memory that contains some information • One of the main uses for objects is to hold data • There are many different classes of objects each with its own properties and uses

  4. Objects • If we counted the number of individuals of tree species in a plot, we can concatenate the values with the function c: c(1, 17, 34, 26, 82)

  5. Objects are frequently created with the operator “<-” • These values could be stored in an object with “any” name using the operator “<-”: abund<- c(1, 17, 34, 26, 82) abund

  6. Objects can be created other ways too • The same operation can also be like this: c(1, 17, 34, 26, 82) -> abund2 assign(x="abund3", value=c(1, 17, 34, 26, 82)) abund4 = c(1, 17, 34, 26, 82) abund abund2 abund3 abund4 identical(abund, abund2)

  7. Data in objects can be of various types • Numeric: E.g., number of individuals per species abund <- c(1, 17, 34, 26, 82) mode(x=abund) mode(abund)

  8. Data in objects can be of various types • Numeric: E.g., number of individuals per species • Character: E.g., names of species spp <- c("I.ynga", "I.edulis", "I.macrophylla", "I.punctata", "I.alba") spp mode(spp)

  9. Data in objects can be of various types • Numeric: E.g., number of individuals per species • Character: E.g., names of species • Logical(true/false): E.g., incrementin abundance? increm <- c(TRUE, FALSE, FALSE, TRUE, TRUE) increm mode(increm)

  10. Special values • NA: missing value; not available; not applicable • Inf and -Inf: infinite • NaN: not a number • NULL: object missing 100/0 -100/0 100 - Inf Inf - Inf

  11. An object in R is similar to an objeto in the real world • Objects have attributes which define their properties • Class is one of the main attributes and it helps determine others Height DBH Leaf shape Class Other attributes Tree (In the real world) matrix (In R) Number of rows Number of columns

  12. Basic classes of R objects

  13. Basic classes of R objects – The Vector • Vectors represent a linear sequence of values, e.g.: Value in first position Value in second position etc…

  14. Basic classes of R objects – Numericvectors abund <- c(1, 17, 34, 26, 82) class(abund) • Lengthisanimportantattribute of vectors: First position Fifth position length(x=abund)

  15. Basic classes of R objects – Numericvectors • Anotheroneisthenames of positions in the vector: Names of positions names(x=abund) names(abund) <- paste("sp", seq(1,length(abund)), sep="") names(abund) abund

  16. Basic classes of R objects – Character vectors spp <- c("I.ynga", "I.edulis", "I.macrophylla", "I.punctata", "I.alba") class(spp) length(spp)

  17. Basic classes of R objects – Character vectors • We can use one vector toassignnamestotheother: names(abund) names(abund)<- spp abund

  18. Basic classes of R objects – Logical vectors increm <- c(TRUE, FALSE, FALSE, TRUE, TRUE) names(increm) <- spp class(increm) length(increm) names(increm)

  19. Basic classes of R objects – The Matrix

  20. Basic classes of R objects – The Matrix • Matrices are data organized in two dimensions: rows and columns Columns Rows • Matrices can hold numeric, character orlogical data

  21. Basic classes of R objects – The Matrix • Onewaytocreate a matrixisthethefunction “matrix” seq(1,10) Abund<- matrix(seq(1,10), ncol=5) abund Abund class(abund) class(Abund)

  22. Basic classes of R objects – The Matrix • Matrices can be filled by columns (predetermined option) or by rows Abund.2 <- matrix(seq(1,10), ncol=5, byrow=TRUE) Abund Abund.2 identical(Abund, Abund.2) ?matrix

  23. Basic classes of R objects – The Matrix • A matrixwithabundance data: v1 <- c(10,2,15,20,34,34,2,1,68,57) Abund <- matrix(v1, ncol=5) Abund • Vectorshavelength, matrices alsohavedimensions dim(Abund) ncol(Abund) nrow(Abund) length(Abund)

  24. Basic classes of R objects – The Matrix • For matrices, we can putnamestocolums and rows spp colnames(Abund) colnames(Abund) <- spp rownames(Abund) <- c("plot_A", "plot_B") Abund • We can alsoputnamesto individual observations names(Abund) <- paste("obs", 1:length(Abund), sep="") Abund

  25. Basic classes of R objects – The Matrix • Matrices can alsoholdcharacterorlogicalvalues Spp<- matrix(esp, ncol=5, nrow=2, byrow=TRUE) Spp Increm <- matrix(increm, ncol=5, nrow=2, byrow=TRUE) Increm mode(Abund) mode(Spp) mode(Increm)

  26. Basic classes of R objects – The Matrix • What happens when we try to merge a character and numeric vectors into the same matrix? Abund mode(abund) spp mode(spp) Mixed.matrix <- cbind(spp, abund) Mixed.matrix mode(Mixed.matrix)

  27. Basic classes of R objects – Array • Arrays are verysimilaryto matrices… buttheyhave3 or more dimensions! 2003 2012

  28. Basic classes of R objects – Array • Arrays are verysimilaryto matrices… buttheyhave 3 or more dimensions! Columns Rows 2012 2003 3rd. dimension

  29. Basic classes of R objects – Array • Arrays are verysimilaryto matrices… buttheyhave 3 or more dimensions! Abund Abund.array<-array(data=Abund, dim=c(2,5,2)) Abund.array class(Abund.array) Ej.Array<-array(seq(1, 10*3), dim=c(2,5,3)) Ej.Array

  30. Basic classes of R objects – Factors • Factorscontainvalues of a categoricalvariable and informationotitslevelsortreatments • Forexample, 8 trees of I. yngawithin a plot can havevariousfenologicstates feno.I.ynga<- c("ster.", "ster.", "flower.", "fruit.", "ster.", "flower.", "flower.", "ster.") class(feno.I.ynga) Feno.I.ynga <- factor(x=feno.I.ynga) Feno.I.ynga class(Feno.I.ynga)

  31. Basic classes of R objects – Factors levels(Feno.I.ynga) length(Feno.I.ynga) length(levels(Feno.I.ynga)) plot(feno.I.ynga) plot(Feno.I.ynga) • Theclass of anobjecthelps determine how a functionwillhandleit

  32. Basic classes of R objects – Data Frame • Data frames organize data in two dimensions, each column is a variable; variables can be of different types Variables Observations

  33. Basic classes of R objects – Data Frame • Data frames organize data in two dimensions, each column is a variable; variables can be of different types spp Abund t(Abund) increm spp.code<-1:length(spp) Data<-data.frame(spp.code, spp, t(Abund), increm) Data

  34. Basic classes of R objects – Data Frame class(Data) Data.M <- as.matrix(Data) class(Data.M) Data.M mode(Data.M) dim(Data) dim(Data.M) length(Data) length(Data.M)

  35. Basic classes of R objects – Data Frame x <- c("a", "b") y <- 1:5 z <- 1:6 x.Y <- data.frame(x,y) • Elements (columns) in a data framemusthavethesamelength length(x) length(y) length(z) x.z <- data.frame(x,z) x.z

  36. Basic classes of R objects – R’s List

  37. Basic classes of R objects – List • Lists can contain data of differnt types, dimensions and even classes List 1 2012 2003 2 3

  38. Basic classes of R objects – List Soils.plot <- matrix(c(0.072, 0.16, 5.29, 0.038, 0.071, 4.2), byrow=TRUE, nrow=2) Climate.year <- matrix(c(24, 26, 15, 19), byrow=TRUE, nrow=2) ListData <- list(Abund, Soils.plot, Climate.year) ListData

  39. Basic classes of R objects – List class(ListData) dim(ListData) length(ListData) names(ListData) names(ListData)<-c("Abund.", "Soils", "Climate") ListData str(ListData)

  40. Other classes of R objects • There is a large number of other R objects, • Most rely on the same structure as vectors, matrices, data frames and lists. E.g.: v1 <- rnorm(100, 10, 5) v2 <- v1 + rnorm(100, 0, 2) plot(v2~v1) LM.v2v1 <- lm(v2~v1) summary(LM.v2v1) class(LM.v2v1) str(LM.v2v1)

  41. Basic classes of R objects

  42. Exercise 3 Objects

More Related