- R語言經(jīng)典實(shí)例(原書第2版)
- (美)J.D.隆 保羅·蒂特
- 399字
- 2020-08-03 16:43:38
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é),按位置而不是按名稱訪問元素。
推薦閱讀
- Microsoft System Center Orchestrator 2012 R2 Essentials
- Python數(shù)據(jù)可視化之Matplotlib與Pyecharts實(shí)戰(zhàn)
- Getting Started with Hazelcast(Second Edition)
- Clean Code in C#
- 自學(xué)Python:編程基礎(chǔ)、科學(xué)計(jì)算及數(shù)據(jù)分析(第2版)
- Web編程基礎(chǔ):HTML5、CSS3、JavaScript(第2版)
- Visual C++程序設(shè)計(jì)與項(xiàng)目實(shí)踐
- Mastering Machine Learning with scikit-learn
- Python程序設(shè)計(jì)教程
- Node.js核心技術(shù)教程
- Programming MapReduce with Scalding
- Vue.js項(xiàng)目開發(fā)實(shí)戰(zhàn)
- 區(qū)塊鏈技術(shù)與智能服務(wù)應(yīng)用
- RabbitMQ Essentials
- Mastering Microsoft Dynamics AX 2012 R3 Programming