官术网_书友最值得收藏!

5.8 根據(jù)名稱選定列表元素

5.8.1 問題

需要根據(jù)名稱訪問一個(gè)列表的元素。

5.8.2 解決方案

有以下方法可供選定。下面的例子中l(wèi)st是一個(gè)列表:

lst[["name"]]

選擇名為name的元素。如果列表中沒有元素具有該名稱,則返回NULL。

lst$name

與之前相同,只是語法不同。

lst[c(name1,name2,...,namek)]

返回一個(gè)由函數(shù)lst中的參數(shù)所決定的元素構(gòu)建的列表。

注意,前兩個(gè)例子返回一個(gè)元素,而第三個(gè)例子返回一個(gè)列表。

5.8.3 討論

列表的每個(gè)元素都可以有一個(gè)名稱。如果列表元素已命名,則可以通過其名稱選擇元素。下面的例子創(chuàng)建了一個(gè)包含四個(gè)命名整數(shù)的列表:


years <- list(Kennedy = 1960, Johnson = 1964,
              Carter = 1976, Clinton = 1994)

以下兩個(gè)表達(dá)式返回相同的值——名為“Kennedy”的元素:


years[["Kennedy"]]
#> [1] 1960
years$Kennedy
#> [1] 1960

以下兩個(gè)表達(dá)式返回從years中提取的子列表:


years[c("Kennedy", "Johnson")]
#> $Kennedy
#> [1] 1960
#>
#> $Johnson
#> [1] 1964

years["Carter"]
#> $Carter
#> [1] 1976

前面提到按位置選擇列表元素的兩個(gè)例子(參見5.7節(jié)),lat[["name"]]和lst["name"]之間也有類似的區(qū)別。它們不一樣:

lst[["name"]]

這是一個(gè)元素,而不是列表。

lst["name"]

這是一個(gè)列表,而不是一個(gè)元素。

第二種形式是lst[c(name1,name2,...,namek)]的特例,這里由于只有一個(gè)名字(name),所以沒有采用c(...)的形式。

5.8.4 另請(qǐng)參閱

請(qǐng)參閱5.7節(jié),按位置而不是按名稱訪問元素。

主站蜘蛛池模板: 雷山县| 余干县| 新郑市| 余庆县| 安达市| 涪陵区| 香河县| 安龙县| 招远市| 治县。| 沭阳县| 和平区| 驻马店市| 木里| 宁海县| 延寿县| 巫山县| 博乐市| 云和县| 兰坪| 祁连县| 弥勒县| 屯留县| 沁水县| 嵩明县| 岳阳市| 塘沽区| 中西区| 南岸区| 克什克腾旗| 恩施市| 元氏县| 甘洛县| 阳城县| 南昌县| 吉木萨尔县| 武定县| 新化县| 稷山县| 房山区| 金溪县|