首页 > 其他 > 详细

R list basic knowledge

时间:2021-08-05 10:27:56      阅读:16      评论:0      收藏:0      [点我收藏+]

Introduction

A list is an indexed set of objects, which can include different data type, even lists. Its power and utility are from its generality. In R, it is often used to collect and store complicated function output. The dataframes are special kinds of lists.

A list is created using the list(...), wich comma-seperated arguments. Single square brackets are used to select a sublist, double square brackerts are used to extract a single element.

> my.list<-list("one",TRUE,3,c("f","o","u","r"))
> my.list
[[1]]
[1] "one"

[[2]]
[1] TRUE

[[3]]
[1] 3

[[4]]
[1] "f" "o" "u" "r"

You can see the list contain diffent type elements.

> mode(my.list)
[1] "list"

You can see the type of varible is list type.

> my.list[[2]]
[1] TRUE

We can use the double square brackerts to extract a single element.

> mode(my.list[[3]])
[1] "numeric"
> mode(my.list[2])
[1] "list"

Single square brackets get a sublist. Double square get a vector element.

> my.list<- list(first="one",second=TRUE,third=3,fourth=c("f","o","u","r"))
> names(my.list)
[1] "first"  "second" "third"  "fourth"
> str(my.list)
List of 4
 $ first : chr "one"
 $ second: logi TRUE
 $ third : num 3
 $ fourth: chr [1:4] "f" "o" "u" "r"

We can set the name for the sublists.

> names(my.list)<-c("First element","Second element","Third element","Fourth element")
> my.list$`Second element`
[1] TRUE

We can update the names of sublists.

> x <- list(1, c(2, 3), c(4, 5, 6),list(c(1,2,3,4),c("hello A","hello B")))
> x
[[1]]
[1] 1

[[2]]
[1] 2 3

[[3]]
[1] 4 5 6

[[4]]
[[4]][[1]]
[1] 1 2 3 4

[[4]][[2]]
[1] "hello A" "hello B"

We can add a list into a list.

> unlist(x)
 [1] "1"       "2"       "3"       "4"       "5"       "6"       "1"       "2"      
 [9] "3"       "4"       "hello A" "hello B"

We can flat a list to get all the vector elements. All the sublists will covert into a list.

unlist(x,recursive = F)
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4

[[5]]
[1] 5

[[6]]
[1] 6

[[7]]
[1] 1 2 3 4

[[8]]
[1] "hello A" "hello B"

We can just flat one level.

The OLS output is a list and can be manipulated using list operations.

> lm.xy<-lm(y~x,data=data.frame(x=1:5,y=1:5))
> names(lm.xy)
 [1] "coefficients"  "residuals"     "effects"       "rank"          "fitted.values"
 [6] "assign"        "qr"            "df.residual"   "xlevels"       "call"         
[11] "terms"         "model"        
> mode(lm.xy)
[1] "list"

Exericses to get a matched result in list.

premierships <- list(Adelaide = c(1997, 1998),
Carlton = c(1906, 1907, 1908, 1914, 1915, 1938, 1945, 1947,1968, 1970, 1972, 1979, 1981, 1982, 1987, 1995),
Collingwood = c(1902, 1903, 1910, 1917, 1919, 1927, 1928, 1929,1930, 1935, 1936, 1953, 1958, 1990))

year<-1917

for (i in 1:length(premierships)) {
    if (year %in% premierships[[i]]){
        winner<-names(premierships)[i]
    }
}
> winner
[1] "Collingwood"

We build a list, we can use for loop to get the matched result.

R list basic knowledge

原文:https://www.cnblogs.com/studydo/p/15094431.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!