How to use `\$` operator in Data Frame and list in R (with six examples)

Introduction

• The data in R objects (Data Frames and list) can be accessed by row and column indexes, name of the columns, and logical vectors
• The `\$` operator is used for extracting data from the Data Frame or list by the name of columns (Data Frame) or elements (list). The `\$` operator does not work with the matrix object.
• In addition, the `\$` operator is useful for adding or deleting data to existing Data Frame and list.
• `\$` is an infix operator which extracts or updates data by taking two arguments (before and after the `\$`). For example, `dataframe\$column1`. The detailed information for `\$` operator can be obtained by `help('\$')` command.

Six example usage of `\$` operator for manipulating Data Frame and list is given below,

`\$` operator to extract columns from Data Frame

Create a random Data Frame,

``````df <- data.frame(col1 = c("A", "B", "C"),
col2 = c(1, 2, 3),
col3 = c(0.1, 0.2, 0.3))
# output
col1 col2 col3
1    A    1  0.1
2    B    2  0.2
3    C    3  0.3
``````

Now, you have created a Data Frame and want to extract the columns from Data Frame by their name using the `\$` operator,

``````# extract col1
df\$col1
[1] "A" "B" "C"
``````

Note: `\$` operator allows selecting only one column at a time

Add a new column to Data Frame

`\$` operator is useful to add a new column to the existing Data Frame. You can use a vector to add the data to Data Frame. The length of the vector should be the same as the number of rows in the Data Frame.

``````df\$col4 <- c(10, 11, 12)
df
# output
col1 col2 col3 col4
1    A    1  0.1   10
2    B    2  0.2   11
3    C    3  0.3   12
``````

Delete column in Data Frame

`\$` operator can be used to delete a column from Data Frame. You can set the column name to `NULL` to delete the column. The drawback of this method is that you can not delete multiple columns at the same time.

``````# delete col4
df\$col4 <- NULL
df
# output
col1 col2 col3
1    A    1  0.1
2    B    2  0.2
3    C    3  0.3
``````

`\$` operator to extract elements from list

Create a random list,

``````list_data <- list(ele1 = c("A", "B", "C"),
ele2 = c(1, 2, 3),
ele3 = c(0.1, 0.2, 0.3))
list_data
# output
\$ele1
[1] "A" "B" "C"

\$ele2
[1] 1 2 3

\$ele3
[1] 0.1 0.2 0.3
``````

Now, we have created the list with three elements and want to extract the values of elements by name using the `\$` operator,

``````# access list element ele2
list_data\$ele2
[1] 1 2 3
``````

Note: You can not extract multiple list elements with `\$` operator at the same time. you should use square brackets operator (`[]`) for extracting multiple elements from list (e.g. `list_data[c('ele1', 'ele2')]`).

Add a new element to the list

`\$` can be used to update the list and add a new element

``````list_data\$ele4 <- c(10, 11, 12, 14)
list_data
# output
\$ele1
[1] "A" "B" "C"

\$ele2
[1] 1 2 3

\$ele3
[1] 0.1 0.2 0.3

\$ele4
[1] 10 11 12 14
``````

Delete elements of the list

`\$` operator can be used to delete the elements of a list by assigning `NULL` value to that element. The drawback of this method is that you can not delete multiple elements of a list at the same time.

``````# delete ele2 from list
list_data\$ele2 <- NULL
list_data
# output
\$ele1
[1] "A" "B" "C"

\$ele3
[1] 0.1 0.2 0.3

\$ele4
[1] 10 11 12 14
``````