R 由于名称原因,创建TIBLE返回错误
我有两个向量。我试图创建一个包含2个向量的所有组合的TIBLE,错误如下R 由于名称原因,创建TIBLE返回错误,r,tibble,R,Tibble,我有两个向量。我试图创建一个包含2个向量的所有组合的TIBLE,错误如下 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因为tibbles是data.frame的扩展,而不是一个精确的替代品,所以您可以执行以下操作: tibble(a
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因为tibbles是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
tibble(a=1:3,b=a+1)
##一个tibble:3x2
#a b
#
#1 1 2
#2 2 3
#3 3 4
…您可以在其中引用以前创建的列。你的例子就是一个例子,说明这可能是一个问题
引用手册:
参数是按顺序计算的,因此您可以参考前面的
创建变量。”
资料来源:
因此,在本例中,rep(G,length(C))
中的C
实际上引用了您刚刚创建的tibblename$C
,长度为20,而不是全局环境中的向量C
,长度为4。expand.grid(C,G)%>%as.tibble()
?谢谢!我不知道这个函数。但问题不在于我试图实现什么,而在于tibbles的行为。因为tibbles是data.frame的扩展,而不是确切的替代品,所以您可以执行类似于tibble(a=1:3,b=a+1)
的操作,您可以在其中引用早期创建的列。这类例子正好说明了为什么这可能是个问题。“参数是按顺序计算的,因此您可以引用以前创建的变量。”-tyvm!如果你作为答案发布,我很乐意接受C
和C
都是功能。