我有2个向量。我正在尝试用两个向量的所有组合创建一个小标题,并出现以下错误。
C <- c(1,2,3,4)
G <- c(1,2,3,4,5)
tibble('C' = rep(C, each = length(G)), 'G' = rep(G, length(C)))
Error: Column `C` must be length 1 or 100, not 20
例如,当我将列“ C”重命名为列“ A”时,错误消失了。 我们也无法通过data.frame得到相同的错误
我怀疑length(C)从小节中取'C'值。 这是预期的行为吗? 如果可以的话,有人可以解释一下这在实践中如何有用吗? (即,有人将如何在其代码中利用这一点)
答案 0 :(得分:0)
由于小标题是data.frame的扩展,而不是确切的替代,因此您可以执行以下操作:
tibble(a=1:3, b=a+1)
## A tibble: 3 x 2
# a b
# <int> <dbl>
#1 1 2
#2 2 3
#3 3 4
...您可以在其中引用先前创建的列。您的示例是何时可能会出现问题的实例。
引用手册:
“参数是按顺序求值的,因此您可以以前参考 创建的变量。”
来源:http://tibble.tidyverse.org/reference/tibble.html
因此,在这种情况下,C
中的rep(G, length(C))
实际上是指您刚创建的tibblename$C
,长度为20,而不是全局变量中的向量C
环境,长度为4。