←
PDF 330 / 520 Subsetting
→
English · PDF 330
Original PDF page 330
中文 · PDF 330

x1 <- list(c(1, 2), c(3, 4)) x2 <- list(list(1, 2), list(3, 4)) x3 <- list(1, list(2, list(3)))

我将按如下方式绘制它们:

有三条原则:

  • 列表使用圆角。原子向量使用方角。
  • 子元素绘制在父元素内部,并使用稍深一点的背景色,以便更容易看清层级结构。
  • 子元素的排列方向(即按行还是按列)并不重要,所以我会根据情况选择按行或按列排列,以节省空间或展示示例中的一个重要特性。

子集选取

有三种方式可以对列表取子集,我将用 a 来演示:

a <- list(a = 1:3, b = "a string", c = pi, d = list(-1, -5))

  • [ 提取一个子列表。结果始终是一个列表:

str(a[1:2]) #> List of 2 #> $ a: int [1:3] 1 2 3 #> $ b: chr "a string" str(a[4]) #> List of 1 #> $ d:List of 2 #> ..$ : num -1 #> ..$ : num -5

与向量一样,你可以使用逻辑、整数或字符向量来取子集。