x[c(1, 3)]
返回x
的第一个和第三个元素,x[[c(1, 3)]]
返回x的第一个元素的第三个元素。这似乎与我不一致。这两者似乎有完全不同的思维方式。为什么他们的标签类似?
第二种写作方式,x[[1]][[3]]
对我来说似乎更直观。
答案 0 :(得分:2)
是的,当您手动输入数字时,x[[c(1,3)]]
相当于x[[1]][[3]]
,但在这种情况下如何:
a <- c(1,3)
x[[a]]
当然你可以把它写成
a <- c(1,3)
x[[ a[1] ]][[ a[2] ]]
但只有当你知道a
将有2个元素时才有效。如果在创建和/或解析列表x
时构建函数的一部分该怎么办?如果没有x[[a]]
的选项,您将需要编写一个递归函数来访问a[1]
的{{1}}元素,然后调用自身,并弹出第一个值x
并且子集a
的结果。 x
语法更简单(也可能更安全)。