正确的方法来访问R中的列表元素

时间:2015-09-28 09:22:03

标签: r list dataframe

我正在尝试制作一个列表,然后在R中访问它的单元格。我是R的新手,并且有一个Matlab背景。这些[][[]]真的让我烦恼。 我尝试在线阅读帮助,但我仍然没有得到它。在以下代码中,c["var1"][1]的返回值与c$"var"[1]不同。

这三种表示法[][[]]$的实际用途是什么?

v <- vector("character", 5)
v[1] <- 'a'
v[2] <- 'a'
v[4] <- 'a'
v
# [1] "a" "a" ""  "a" "" 
c <- list(v, v)
names(c) <- c("var1", "var2")
c
# $var1
# [1] "a" "a" ""  "a" "" 

# $var2
# [1] "a" "a" ""  "a" "" 

c["var1"][1]
# $var1
# [1] "a" "a" ""  "a" "" 

c$"var1"[1]
# [1] "a"

1 个答案:

答案 0 :(得分:7)

所有这些方法都提供不同的输出

[]返回一个列表

[[]]返回存储在列表

中的对象

如果是命名列表,那么

列表$ name或List [[“name”]]将返回与List [[]]

相同的内容

List [“name”]返回列表时,请考虑以下示例

> List <- list(A = 1,B = 2,C = 3,D = 4)
> List[1]
$A
[1] 1

> class(List[1])
[1] "list"
> List[[1]]
[1] 1
> class(List[[1]])
[1] "numeric"
> List$A
[1] 1
> class(List$A)
[1] "numeric"
> List["A"]
$A
[1] 1

> class(List["A"])
[1] "list"
> List[["A"]]
[1] 1
> class(List[["A"]])
[1] "numeric"