<- list(
my_list name = "John Wayne",
age = 72,
children = c("Michael", "Patrick", "Ethan"),
films = data.frame(
file_title = c("Brown of Harvard", "Annie Lauire", "Mother Machree"),
year = c(1926, 1927, 1928)
) )
Lists
Behind the scene, R stores many things as a list
.
A list is a very flexible data type that can store any combination of other data types (including lists) in any order. With greater flexibility however, comes greater complexity.
Let us look at a simple example of a list:
Let us also investigate the structure of our new variable:
Firstly, the names of elements in the list:
[1] "name" "age" "children" "films"
And secondly, the data structure of the list:
List of 4
$ name : chr "John Wayne"
$ age : num 72
$ children: chr [1:3] "Michael" "Patrick" "Ethan"
$ films :'data.frame': 3 obs. of 2 variables:
..$ file_title: chr [1:3] "Brown of Harvard" "Annie Lauire" "Mother Machree"
..$ year : num [1:3] 1926 1927 1928
Lastly, lets look at some of the sub-element of the list:
4]][[1]][[2]] my_list[[
[1] "Annie Lauire"
$films$year[3] my_list
[1] 1928
As you can see from the example above, lists (or the tidyverse variety lst
) can contain any combination of other variables of different types, including complex types like tibbles, plots, tables, etc.
You may recall, that in data frames (and tibbles) each column must consist of cells of the same data type. It is perfectly possible for a data frame to contain one or more columns of lists. And conversely of course, a list may contain elements which are data frames. R really is very flexible.
If you want to work with lists in tidyverse code, we recommend you get familiar with the purrr
package.
Bag kulisserne gemmer R mange ting som en list
.
En liste er en meget fleksibel datatype, der kan gemme enhver kombination af andre datatyper (inklusive lister) i vilkårlig rækkefølge. Med større fleksibilitet følger dog også større kompleksitet.
Lad os se på et simpelt eksempel på en liste:
<- list(
my_list name = "John Wayne",
age = 72,
children = c("Michael", "Patrick", "Ethan"),
films = data.frame(
file_title = c("Brown of Harvard", "Annie Lauire", "Mother Machree"),
year = c(1926, 1927, 1928)
) )
Lad os også undersøge strukturen af vores nye variabel:
For det første navnene på elementerne i listen:
[1] "name" "age" "children" "films"
Og for det andet datastrukturen for listen:
List of 4
$ name : chr "John Wayne"
$ age : num 72
$ children: chr [1:3] "Michael" "Patrick" "Ethan"
$ films :'data.frame': 3 obs. of 2 variables:
..$ file_title: chr [1:3] "Brown of Harvard" "Annie Lauire" "Mother Machree"
..$ year : num [1:3] 1926 1927 1928
Til sidst lad os kigge på nogle af under-elementerne i listen:
4]][[1]][[2]] my_list[[
[1] "Annie Lauire"
$films$year[3] my_list
[1] 1928
Som det fremgår af eksemplet ovenfor, kan lister (eller tidyverse-varianten lst
) indeholde enhver kombination af andre variabler af forskellige typer, inklusive komplekse typer som tibbles, plots, tabeller osv.
Du husker måske, at i data frames (og tibbles) skal hver kolonne bestå af celler med samme datatype. Det er fuldt ud muligt for en data frame at indeholde en eller flere kolonner af lister. Og omvendt kan en liste naturligvis indeholde elementer, der er data frames. R er vitterligt meget fleksibelt.
Hvis du ønsker at arbejde med lister i tidyverse-kode, anbefaler vi, at du bliver fortrolig med purrr
-pakken.