Lists in R: Create, Name, and Append a List

Before understanding and working on lists, let’s review the other data types in R

Each of the data type (vectors, matrices, and data frames) has some level of constraints. For example, vectors are single column data type and can only store one type of data. Matrices are of two-dimensional, but they can store only one type of data. On the other hand, data frames are two-dimensional and can store different types of data, but in data frames the length of columns should be same.

Now comes to lists.

In R, lists have no such constraints as vectors, matrices and data frames have. The element of a list can contain any type of data can contain any type of data having varying length for each element.

Lists are the most flexible data type in R, as the list can hold all kind of different operations when programming. Let us consider some examples about how to create lists in R, and how elements of the list can be named, retrieved and appended. The list data type is created using list() keyword. For examples,

mylist <- list('alpha', 'beta', 'gamma', 1:5, TRUE)

Note that lists are printed differently and they have their own form of indexing for retrieving each element of the list.

Retrieving List Elements

The certain element of a list can be accessed using subsetting technique (on the basis of the list indexing mechanism. For example, to access the first three elements of the list created above, one can write in R console as,

The certain element of a list can be accessed using subsetting technique (on the basis of the list indexing mechanism. For example, to access the first three elements of the list created above, one can write in R console as,


To examine one element of the list, double square brackets can be used with required index number. For example, to access the fourth element of the list, one can use,


Note when one use normal subsetting, a list will be obtained as a result. When double square brackets are used the contents of the elements are obtained. Note the difference and command and output of each command used below:


The elements of a list can be named, and elements of lists can be retrieved using $ operator instead of square brackets. The first command will name the elements of the mylist object. and then other commands will result in the same output.

names(mylist) <- c("a", "b", "c", "d", "e")

Appending an Element to List

Like data frames, an element of a list can be created by assigning something to an index that does not exist yet. For example, a sixth element is added to the list

mylist$f <- c("Pass", "Fail")

Now the 6th element of the list contains a vector of strings “Pass”, and “Fail”. To check this,


To access the elements of specific list vector subsetting and two square brackets can be used. For example to access the fourth element of the list one can use,

mylist[[4]][3] # 3rd element of 4th list element
mylist[[4]][1:3]# first three elements of 4th list element

For further reading about lists see the link Lists in R.

List in R Language

In R language, a list is an object that consists of an ordered collection of objects known as its components. A list in R Language is a structured data that can have any number of any modes (types) or other structured data. That is, one can put any kind of object (like vector, data frame, character object, matrix and/ or array) into one list object. An example of a list is

> x <- list(c(1,2,3,5), c(“a”, “b”, “c”, “d”), c(T, T, F, T, F), matrix(1:9, nr = 3) )

that contains 4 components, three of them are vectors (numeric, string and a logical) and one of them is matrix.

An object can also be converted to list by using as.list( ) function. For vector, the disadvantage is that each element of the vector becomes a component of that list. For example,

> as.list (1: 10)

Extract components from a list

The operator [[ ]] (double square bracket) is used to extract the components of a list. To extract the second component of the list, one can write at R prompt,

> list[[2]]

Using [ ] operator return a list rather than the structured data (the component of the list). The component of the list need not be of the same mode. The components are always numbered. If x1 is the name of a list with four components, then individual components may be referred to as x1[[1]], x1[[2]], x1[[3]], and x1[[4]].

If component of a list are defined then these component can be extracted by using the name of components. For example, a list with named component is

> x1 <- list(a = c(1,2,3,5), b = c(“a”, “b”, “c”, “d”), c = c(T, T, F, T, F),
d = matrix(1:9, nr = 3) )

To extract the component a, one can write

> x1$a
> x1[“a”]
> x1[[“a”]]

To extract more than one component, one can write

> x[c(1,2)]    #extract component one and two
> x[-1]         #extract all component except 1st
> x[[c(1,2)]] #extract 2nd element of component one
> x[[c(2,2)]] #extract 2nd element of component two
> x[[c(2:4)]] #extract all elements of component 2 to 4

Scroll to top
x  Powerful Protection for WordPress, from Shield Security
This Site Is Protected By
Shield Security