Submitted by: Submitted by puhsy
Views: 126
Words: 673
Pages: 3
Category: Science and Technology
Date Submitted: 01/21/2013 08:37 PM
Introduction to the R Language
Data Types and Basic Operations
Computing for Data Analysis
1 / 14
Subsetting
There are a number of operators that can be used to extract subsets of R objects. [ always returns an object of the same class as the original; can be used to select more than one element (there is one exception) [[ is used to extract elements of a list or a data frame; it can only be used to extract a single element and the class of the returned object will not necessarily be a list or data frame $ is used to extract elements of a list or data frame by name; semantics are similar to hat of [[.
2 / 14
Subsetting
> x x[1] [1] "a" > x[2] [1] "b" > x[1:4] [1] "a" "b" "c" "c" > x[x > "a"] [1] "b" "c" "c" "d" > u "a" > u [1] FALSE TRUE TRUE TRUE TRUE FALSE > x[u] [1] "b" "c" "c" "d"
3 / 14
Subsetting a Matrix
Matrices can be subsetted in the usual way with (i, j) type indices. > x x[1, 2] [1] 3 > x[2, 1] [1] 2 Indices can also be missing. > x[1, ] [1] 1 3 5 > x[, 2] [1] 3 4
4 / 14
Subsetting a Matrix
By default, when a single element of a matrix is retrieved, it is returned as a vector of length 1 rather than a 1 × 1 matrix. This behavior can be turned off by setting drop = FALSE. > x x[1, 2] [1] 3 > x[1, 2, drop = FALSE] [,1] [1,] 3
5 / 14
Subsetting a Matrix
Similarly, subsetting a single column or a single row will give you a vector, not a matrix (by default). > x x[1, ] [1] 1 3 5 > x[1, , drop = FALSE] [,1] [,2] [,3] [1,] 1 3 5
6 / 14
Subsetting Lists
> x x[1] $foo [1] 1 2 3 4 > x[[1]] [1] 1 2 3 4 > x$bar [1] 0.6 > x[["bar"]] [1] 0.6 > x["bar"] $bar [1] 0.6
7 / 14
Subsetting Lists
Extracting multiple elements of a list. > x x[c(1, 3)] $foo [1] 1 2 3 4 $baz [1] "hello"
8 / 14
Subsetting Lists
The [[ operator can be used with computed indices; $ can only be used with literal names. > x name x[[name]] ## [1] 1 2 3 4 > x$name ## NULL > x$foo [1] 1 2 3 4 ## = 1:4, bar = 0.6, baz =...