R 建立列表 list

2021-06-26 14:18:26 字數 1756 閱讀 6661

向量的元素要求都是同型別的,而列表(list)與向量不同,可以組合多個不同型別的物件。列表在r中扮演著乙個至關重要的角色,是資料框和物件導向程式設計的基礎。

列表是r的資料型別中最為複雜的一種。一般來說,列表就是一些物件(或成分,component)的有序集合。列表能整合若干(可能無關的)物件到單個物件名下。例如,某個列表中可能是若干向量、矩陣、資料框,甚至是其他列表的組合。

從技術上講,列表就是向量。之前我們接觸過的普通向量都稱為「原子型(atomic)」向量,就是說,向量的元素已經是 最小的、不可再分的。而列表則屬於「遞迴型(recursive)」向量。

可以使用函式list()建立列表:

mylist <- list( name1=object1, name2=object2, … )

其中的物件可以是r語言中的任何資料結構。

list( name="joe", salary=55000, union=t )

$name

[1] "joe" 

$salary

[1] 55000 

$union

[1] true

r語言中列表各元件的名稱叫做標籤(tags),例如上面**中的salary。實際上標籤是可選的,也可以不指定。上面**也可以這樣寫:

> list( "joe", 55000, t )

[[1]]

[1] "joe" 

[[2]]

[1] 55000 

[[3]]

[1] true

但是一般來說推薦為各個部分取名而不用這些預設的數值,這樣使**更清晰而且不容易犯錯誤。

在使用的時候,標籤的名字可以簡寫,只寫出前幾個字母,只要不引起歧義,r都能識別:

> l <- list( name="joe", salary=55000, union=t )

> l$salary

[1] 55000

> l$sal

[1] 55000

因為列表是向量,因此可以使用vector來建立列表。

> z <- vector( mode = "list" )

> z[["abc"]] <- 3

#兩個中括號間不允許有空格

> z

$abc[1] 3

測試列表的長度:

> l <- list( name="joe", salary=55000, union=t )

> length( l )

[1] 3

►列表連線

當連線函式c()的引數中有列表物件時,結果就是乙個列表模式的物件,它的分量是那些當作引數的列表。

> list.abc <- c( list.a, list.b, list.c )

由於兩個原因,列表成了r中的重要的資料結構。首先,列表允許以一種簡單的方式組織和重新呼叫不相干的資訊;其次,許多r函式的執行結果都是以列表的形式返回的。

注意:ю 物件名稱中的句點(.)沒有特殊意義。但美元符號($)卻有著和其他語言中的句點類似的含義,即指定乙個物件中的某部分。

ю r不提供多行注釋或塊注釋功能。必須以#作為多行注釋每行的開始。出於除錯的目的,可以把想讓編譯器忽略的**放到語句if(false)中。

ю 將乙個值賦給某個向量、矩陣、陣列或列表中乙個不存在的元素時,r將自動擴充套件這個資料結構以容納新值。

ю r中沒有標量。標量以單元素向量的形式出現。

ю r中的下標不從0開始,而從1開始。

ю 變數無法被宣告,它們在首次被賦值時生成。

R語言列表list函式

列表是r語言中的物件,它包含不同型別的元素,比如 數字,字串,向量和另乙個列表等。乙個列表還可以包含乙個矩陣或乙個函式作為它的元素。使用list 函式建立列表。下面是乙個例子來建立乙個包含字串,數字,向量和邏輯值的列表 create a list containing strings,numbers...

rraylist引數 R語言列表list函式

列表是r語言中的物件,它包含不同型別的元素,比如 數字,字串,向量和另乙個列表等。乙個列表還可以包含乙個矩陣或乙個函式作為它的元素。使用list 函式建立列表。建立乙個列表 下面是乙個例子來建立乙個包含字串,數字,向量和邏輯值的列表 create a list containing strings,...

列表List的建立和使用

1,建立列表 列表可以儲存任何型別的資料,在建立列表物件的時候首先要指定你要建立的這個列表要儲存什麼型別的 泛型 listscorelist newlist new list newlist var scorelist new list 2,往列表中插入資料 scorelist.add 12 sco...