(window.webpackJsonp=window.webpackJsonp||[]).push([[2862],{3270:function(s,t,a){"use strict";a.r(t);var e=a(31),n=Object(e.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"classes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#classes"}},[s._v("#")]),s._v(" Classes")]),s._v(" "),a("p",[s._v("The class of a data-object determines which functions will process its contents. The "),a("code",[s._v("class")]),s._v("-attribute is a character vector, and objects can have zero, one or more classes. If there is no class-attribute, there will still be an implicit class determined by an object's "),a("code",[s._v("mode")]),s._v(". The class can be inspected with the function "),a("code",[s._v("class")]),s._v(" and it can be set or modified by the "),a("code",[s._v("class<-")]),s._v(" function. The S3 class system was established early in S's history. The more complex S4 class system was established later")]),s._v(" "),a("h2",{attrs:{id:"inspect-classes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inspect-classes"}},[s._v("#")]),s._v(" Inspect classes")]),s._v(" "),a("p",[s._v("Every object in R is assigned a class. You can use "),a("code",[s._v("class()")]),s._v(" to find the object's class and "),a("code",[s._v("str()")]),s._v(" to see its structure, including the classes it contains. For example:")]),s._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[s._v("class"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("iris"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data.frame"')]),s._v("\n\nstr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("iris"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'data.frame'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("150")]),s._v(" obs. of "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5")]),s._v(" variables"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("$")]),s._v(" Sepal.Length"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" num "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5.1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("4.9")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("4.7")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("4.6")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("4.6")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("4.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("4.9")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token ellipsis"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("$")]),s._v(" Sepal.Width "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" num "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3.5")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3.2")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3.1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3.6")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3.9")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2.9")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3.1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token ellipsis"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("$")]),s._v(" Petal.Length"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" num "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.3")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.5")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.7")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.5")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.5")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token ellipsis"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("$")]),s._v(" Petal.Width "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" num "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.3")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token ellipsis"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("$")]),s._v(" Species "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" Factor w"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3")]),s._v(" levels "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"setosa"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"versicolor"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(".."),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token ellipsis"}},[s._v("...")]),s._v("\n\nclass"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("iris"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("$")]),s._v("Species"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"factor"')]),s._v("\n\n")])])]),a("p",[s._v("We see that iris has the class "),a("code",[s._v("data.frame")]),s._v(" and using "),a("code",[s._v("str()")]),s._v(" allows us to examine the data inside. The variable Species in the iris data frame is of class factor, in contrast to the other variables which are of class numeric. The "),a("code",[s._v("str()")]),s._v(" function also provides the length of the variables and shows the first couple of observations, while the "),a("code",[s._v("class()")]),s._v(" function only provides the object's class.")]),s._v(" "),a("h2",{attrs:{id:"vectors-and-lists"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#vectors-and-lists"}},[s._v("#")]),s._v(" Vectors and lists")]),s._v(" "),a("p",[s._v("Data in R are stored in vectors. A typical vector is a sequence of values all having the same storage mode (e.g., characters vectors, numeric vectors). See "),a("code",[s._v("?atomic")]),s._v(" for details on the atomic implicit classes and their corresponding storage modes: "),a("code",[s._v('"logical", "integer", "numeric" (synonym "double"), "complex", "character"')]),s._v(" and "),a("code",[s._v('"raw"')]),s._v(". Many classes are simply an atomic vector with a "),a("code",[s._v("class")]),s._v(" attribute on top:")]),s._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[s._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1826")]),s._v("\nclass"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"Date"')]),s._v("\nx \n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v('# [1] "1975-01-01"')]),s._v("\n x "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" as.Date"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"1970-01-01"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n class"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v('#[1] "Date"')]),s._v("\n is"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"Date"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#[1] TRUE")]),s._v("\n is"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"integer"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#[1] FALSE")]),s._v("\n is"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"numeric"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#[1] FALSE")]),s._v("\n mode"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v('#[1] "numeric"')]),s._v("\n\n")])])]),a("p",[s._v('Lists are a special type of vector where each element can be anything, even another list, hence the R term for lists: "recursive vectors":')]),s._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[s._v("mylist "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" list"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v(" A "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("6")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("7")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("8")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" B "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" letters"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" CC "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" list"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"Z"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])])]),a("p",[s._v("Lists have two very important uses:")]),s._v(" "),a("li",[s._v("\nSince functions can only return a single value, it is common to return complicated results in a list:\n"),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[s._v("f "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" list"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("xplus "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" x "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("+")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" xsq "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" x"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("^")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("7")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# $xplus")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# [1] 17")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# $xsq")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# [1] 49")]),s._v("\n\n")])])])]),s._v(" "),a("li",[s._v("\nLists are also the underlying fundamental class for [data frames](http://stackoverflow.com/documentation/r/438/). Under the hood, a data frame is a list of vectors all having the same length:\n"),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[s._v("L "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" list"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" y "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"A"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"B"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\nDF "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" data.frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("L"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\nDF\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# x y")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 1 1 A")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 2 2 B")]),s._v("\nis.list"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("DF"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# [1] TRUE")]),s._v("\n\n")])])])]),s._v(" "),a("p",[s._v('The other class of recursive vectors is R expressions, which are "language"- objects')]),s._v(" "),a("h2",{attrs:{id:"vectors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#vectors"}},[s._v("#")]),s._v(" Vectors")]),s._v(" "),a("p",[s._v("The most simple data structure available in R is a vector. You can make vectors of numeric values, logical values, and character strings using the "),a("code",[s._v("c()")]),s._v(" function. For example:")]),s._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[s._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("## [1] 1 2 3")]),s._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("TRUE")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("TRUE")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("FALSE")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("## [1] TRUE TRUE FALSE")]),s._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"a"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"b"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"c"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v('## [1] "a" "b" "c"')]),s._v("\n\n")])])]),a("p",[s._v("You can also join to vectors using the "),a("code",[s._v("c()")]),s._v(" function.")]),s._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[s._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\ny "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("4")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("6")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\nz "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<-")]),s._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\nz\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("## [1] 1 2 5 3 4 6")]),s._v("\n\n")])])]),a("p",[s._v("A more elaborate treatment of how to create vectors can be found in the "),a("a",{attrs:{href:"http://stackoverflow.com/documentation/r/1088/creating-vectors",target:"_blank",rel:"noopener noreferrer"}},[a("strong",[s._v('"Creating vectors"')]),s._v(" topic"),a("OutboundLink")],1)]),s._v(" "),a("h4",{attrs:{id:"remarks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#remarks"}},[s._v("#")]),s._v(" Remarks")]),s._v(" "),a("p",[s._v('There are several functions for inspecting the "type" of an object. The most useful such function is '),a("code",[s._v("class")]),s._v(", although sometimes it is necessary to examine the "),a("code",[s._v("mode")]),s._v(' of an object. Since we are discussing "types", one might think that '),a("code",[s._v("typeof")]),s._v(" would be useful, but generally the result from "),a("code",[s._v("mode")]),s._v(' will be more useful, because objects with no explicit "class"-attribute will have function dispatch determined by the "implicit class" determined by their mode.')])])}),[],!1,null,null,null);t.default=n.exports}}]);