# R Data Structures

There are 4 basic data structures in R. I am not referring to the basic data types (numeric, integer, character, logical, complex ).

### 1. Vector – Sequence of elements of the same basic data type.

```# These are some examples of vectors.
# A numeric vector showing temperatures in Chicago of a particular week.
> temp = c(12.4, 13.5, 15.6, 20, 21.5, 13.6, 12.4)
> temp
[1] 12.4 13.5 15.6 20.0 21.5 13.6 12.4
```
```# You cannot have different data types in a vector.
# Since 12.4 is now defined as a string, all of the numbers have been
# converted to strings automatically.
> temp = c(12.4, 13.5, 15.6, 20, 21.5, 13.6, "12.4")
> temp
[1] "12.4" "13.5" "15.6" "20"   "21.5" "13.6" "12.4"
```

### 2. Matrix – If a Vector is 1D (1-dimensional), a matrix is 2D

```# For example, if the vector temp_month contains the temperatures in
# Chicago for an entire month
> temp_month
[1] 12.4 13.5 15.6 20.0 21.5 13.6 12.4 13.2 12.6 17.6
[11] 12.8 19.4 14.3 16.7 17.2 14.5 16.7 19.2 21.5 14.0
[21] 19.4 19.3 17.5 18.5 20.1 22.5 23.5 34.1
```
```<pre class="wp-block-syntaxhighlighter-code"># this can be folded into a 4x7 matrix as below
> month_matrix = matrix(temp_month, nrow=4, ncol=7, byrow=TRUE)<div>> month_matrix</div><div>     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 12.4 13.5 15.6 20.0 21.5 13.6 12.4
[2,] 13.2 12.6 17.6 12.8 19.4 14.3 16.7
[3,] 17.2 14.5 16.7 19.2 21.5 14.0 19.4
[4,] 19.3 17.5 18.5 20.1 22.5 23.5 34.1</div></pre>
```

### 3. List – Like a vector, but not limited to “same data type”

```# For example, different data types like a person's age (numeric),
# name(string), city(string),zip code (numeric) can be stored in a list.
> person = list(30, "Ajay", "San Francisco", 94000 )
> person
[[1]]
[1] 30
[[2]]
[1] "Ajay"
[[3]]
[1] "San Francisco"
[[4]]
[1] 94000
```

### 4. Data Frame – Like a Matrix, but not limited to “same data type”

```<pre class="wp-block-syntaxhighlighter-code"># A data frame is usually created by reading from external data
# Imagine 4 vectors
> age = c(30,32,21,60)<div>> names = c("Ajay","Adam","Mary","Aishu")
> cities = c("San Francisco","New York","Sunnyvale","San Jose")
> zip = c(94000,40101,94010,94001)

</pre>
```
```<pre class="wp-block-syntaxhighlighter-code"># We can combine the vectors into a data frame like so
> persons = data.frame(age,names,cities,zip)<div>> persons</div><div>  age names        cities   zip
1  30  Ajay San Francisco 94000
2  32  Adam      New York 40100
3  21  Mary     Sunnyvale 94010
4  60 Aishu      San Jose 94001</div></div>
</pre>
```

This site uses Akismet to reduce spam. Learn how your comment data is processed.