从R中的List中提取元素

时间:2016-08-25 02:06:33

标签: r list subscript

我是R的初学者。所以我正在尝试使用列表来理解R.  x <- list(foo = 1:4, bar = 0.6) 我可以使用y = x[1]从x获取foo变量。 xy都是列表,我可以使用xx[1]获取第一个元素但是无法从y获取第一个元素y[1]y[1]正在给予 $ FOO [1] 1 2 3 4 这里xy之间有什么区别?

1 个答案:

答案 0 :(得分:2)

在这方面,{p> R可能会令人困惑。问题是x[1]为您提供了一个列表,而不是存储在列表第一个元素中的值。

假设x <- list(foo = 1:4, bar = 0.6),您可以通过两种方式从x中提取

您可以按索引进行子集化: x[[1]]会在第一个向量中显示值,x[1]将为您提供包含x

中第一个列表的列表
> x[[1]]
[1] 1 2 3 4

> x[1]
$foo
[1] 1 2 3 4

x[[1]]旁边,您可以按照指定的名称对x进行分组,即

> x$foo
[1] 1 2 3 4

y = x[1]无效的原因是因为您没有将值1到4的向量分配给y,您传递了一个列表。所以y是长度为1的列表。因此,您希望

y=x[[1]]

y=x$foo

这样,您可以根据需要对y进行分组:

> y[1]
[1] 1

然而,对于您当前的方法y = x[1]y是一个列表,因此,您可以像对待普通列表一样对y进行子集化:

> y[[1]][1]
[1] 1

> y$foo[1]
[1] 1