【发布时间】:2021-12-25 11:03:15
【问题描述】:
我有一个简单的案例,我用一组这样的向量创建了一个数据框。
df1 = tibble(
seed = rep(c(289805, 671086, 799837), 4),
sd = rep(c(1, 3, 5, 10), each=3),
ar = rep(c(.8, .9, .95), 4)
)
df1
# A tibble: 12 x 3
#seed sd ar
#<dbl> <dbl> <dbl>
#1 289805 1 0.8
# 2 671086 1 0.9
# 3 799837 1 0.95
# 4 289805 3 0.8
# 5 671086 3 0.9
# 6 799837 3 0.95
# 7 289805 5 0.8
# 8 671086 5 0.9
# 9 799837 5 0.95
#10 289805 10 0.8
#11 671086 10 0.9
#12 799837 10 0.95
我想要ar 列是这样的情况
df2 = tibble(
seed = rep(c(289805, 671086, 799837), 4),
sd = rep(c(1, 3, 5, 10), each=3),
ar = rep(c(c(0.4, 0.4), c(0.45, 0.45), c(0.35, 0.6)), 4)
)
df2
我会有这样的东西。
# A tibble: 12 x 3
#seed sd ar
#<dbl> <dbl> <dbl>
#1 289805 1 (0.4, 0.4)
# 2 671086 1 (0.45, 0.45)
# 3 799837 1 (0.35, 0.6)
# 4 289805 3 (0.4, 0.4)
# 5 671086 3 (0.45, 0.45)
# 6 799837 3 (0.35, 0.6)
# 7 289805 5 (0.4, 0.4)
# 8 671086 5 (0.45, 0.45)
# 9 799837 5 (0.35, 0.6)
#10 289805 10 (0.4, 0.4)
#11 671086 10 (0.45, 0.45)
#12 799837 10 (0.35, 0.6)
相反,我收到此错误消息“错误:Tibble 列必须具有兼容的大小。
- 大小 12:现有数据。
- 大小 24:列
ar.`
【问题讨论】:
-
rep(c(c(0.4, 0.4), c(0.45, 0.45), c(0.35, 0.6)), 4)会给你一个长度为 24 (6 x 4) 的向量。您的其他列的长度为 12。要执行您想要的操作,ar列应该(可能?)是一个列表,例如,tibble(a = 1:1, b = list(a = 1:2, b = 3:4))。但是你真的需要在ar的每一行中存储多个元素吗? -
是的,我想将此答案 stackoverflow.com/questions/69315757/… 扩展到
ar of order 2即order = c(2, 0, 0)而不是order = c(1, 0, 0)。