我想在结构中存储非矩形数据,例如在列表
中。
使用 tibble
引用以前的数据,例如像这样:
dat <- tibble(a = 2,
b = list(c(a + 1, a + 2)),
c = list(tibble(a = a, b = 3)))
请注意,由于 tibble
不允许在列中使用 tibble
(否则数据不会是矩形),因此我们必须将 tibble
包装起来在列表中,并且 dat$c
不返回 tibble
,因为我们需要 dat$c[[1]]
。
后一个问题可以通过列表
来解决。
dat2 <- list(a = 2,
b = c(3, 4),
c = tibble(a = 2, b = 3))
但是,现在我无法引用以前的条目构造数据元素:
dat2 <- list(a = 2,
b = c(a + 1, a + 2),
c = tibble(a = a, b = 3))
> Error: object 'a' not found
我的问题:有没有办法构建一个非矩形数据结构,并且支持通过引用以前的条目进行构建?
最佳答案
您可以使用lst()
代替:
lst(a = 2,
b = c(a + 1, a + 2),
c = tibble(a = a, b = 3))
$a
[1] 2
$b
[1] 3 4
$c
# A tibble: 1 × 2
a b
<dbl> <dbl>
1 2 3
关于r - 有没有办法初始化或修改允许引用以前的值的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72139140/