R语言 列表 Lists
本文向大家介绍R语言 列表 Lists,包括了R语言 列表 Lists的使用技巧和注意事项,需要的朋友参考一下
示例
列表可以是[:
l1 <- list(c(1, 2, 3), 'two' = c("a", "b", "c"), list(10, 20)) l1 ## [[1]] ## [1] 1 2 3 ## ## $two ## [1] "a" "b" "c" ## ## [[3]] ## [[3]][[1]] ## [1] 10 ## ## [[3]][[2]] ## [1] 20 l1[1] ## [[1]] ## [1] 1 2 3 l1['two'] ## $two ## [1] "a" "b" "c" l1[[2]] ## [1] "a" "b" "c" l1[['two']] ## [1] "a" "b" "c"
请注意,结果l1[2]仍然是列表,因为[运算符会选择列表中的元素,并返回较小的列表。的[[操作者提取列表中的元素,返回列表元素的类型的对象。
元素可以按数字或名称的字符串(如果存在)进行索引。[通过传递数字矢量或名称字符串可以选择多个元素。用的矢量索引length > 1中[和[[返回一个“清单”与指定的元素和一个递归子集(如果可用),分别:
l1[c(3, 1)] ## [[1]] ## [[1]][[1]] ## [1] 10 ## ## [[1]][[2]] ## [1] 20 ## ## ## [[2]] ## [1] 1 2 3
相比:
l1[[c(3, 1)]] ## [1] 10
等效于:
l1[[3]][[1]] ## [1] 10
该$运算符允许您仅按名称选择列表元素,但与[和不同[[,不需要引号。作为中缀运算符,$只能使用一个名称:
l1$two ## [1] "a" "b" "c"
另外,$默认情况下,运算符允许部分匹配:
l1$t ## [1] "a" "b" "c"
与[[需要指定是否允许部分匹配的地方形成对比:
l1[["t"]] ## NULL l1[["t", exact = FALSE]] ## [1] "a" "b" "c"
设置options(warnPartialMatchDollar = TRUE),当与发生部分匹配时会给出“警告” $:
l1$t ## [1] "a" "b" "c" ## Warning message: ## In l1$t : partial match of 't' to 'two'