为什么rbind(c(1,2,3),c(4,5,6))与Reduce(rbind,c(c(1,2,3),c(4,5,6))不同?
假设我想要rbind任意数量的相同长度的对象,所以我认为减少该对象的向量是解决方案。但是:为什么rbind(c(1,2,3),c(4,5,6))与Reduce(rbind,c(c(1,2,3),c(4,5,6))不同?,r,reduce,rbind,R,Reduce,Rbind,假设我想要rbind任意数量的相同长度的对象,所以我认为减少该对象的向量是解决方案。但是: rbind(c(1,2,3),c(4,5,6)) > [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 但是, Reduce(rbind,c(c(1,2,3),c(4,5,6))) > [,1] init 1 2 3 4
rbind(c(1,2,3),c(4,5,6))
> [,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
但是,
Reduce(rbind,c(c(1,2,3),c(4,5,6)))
> [,1]
init 1
2
3
4
5
6
为什么两者不产生相同的输出?我应该如何找到任意数量的相同长度的对象?如果只运行
c(c(1,2,3),c(4,5,6))
# [1] 1 2 3 4 5 6
你会看到,它只是创建了一个长度为6的向量。这不是两个独立的向量。不能有包含其他向量的向量,但可以有包含向量的列表。因此,正确的语法是
Reduce(rbind,list(c(1,2,3),c(4,5,6)))
# [,1] [,2] [,3]
# init 1 2 3
# 4 5 6
如果你只是跑
c(c(1,2,3),c(4,5,6))
# [1] 1 2 3 4 5 6
你会看到,它只是创建了一个长度为6的向量。这不是两个独立的向量。不能有包含其他向量的向量,但可以有包含向量的列表。因此,正确的语法是
Reduce(rbind,list(c(1,2,3),c(4,5,6)))
# [,1] [,2] [,3]
# init 1 2 3
# 4 5 6
如果你只是跑
c(c(1,2,3),c(4,5,6))
# [1] 1 2 3 4 5 6
你会看到,它只是创建了一个长度为6的向量。这不是两个独立的向量。不能有包含其他向量的向量,但可以有包含向量的列表。因此,正确的语法是
Reduce(rbind,list(c(1,2,3),c(4,5,6)))
# [,1] [,2] [,3]
# init 1 2 3
# 4 5 6
如果你只是跑
c(c(1,2,3),c(4,5,6))
# [1] 1 2 3 4 5 6
你会看到,它只是创建了一个长度为6的向量。这不是两个独立的向量。不能有包含其他向量的向量,但可以有包含向量的列表。因此,正确的语法是
Reduce(rbind,list(c(1,2,3),c(4,5,6)))
# [,1] [,2] [,3]
# init 1 2 3
# 4 5 6
对于任意数量的向量,您可以将它们放入
列表
并使用do.call
> do.call("rbind", list(c(1,2,3),c(4,5,6)))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 4 5 6
在较长的列表中,例如:
> do.call("rbind", list(c(1,2,3),c(4,5,6), 7:9, 10:12))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 4 5 6
#[3,] 7 8 9
#[4,] 10 11 12
对于任意数量的向量,您可以将它们放入
列表
并使用do.call
> do.call("rbind", list(c(1,2,3),c(4,5,6)))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 4 5 6
在较长的列表中,例如:
> do.call("rbind", list(c(1,2,3),c(4,5,6), 7:9, 10:12))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 4 5 6
#[3,] 7 8 9
#[4,] 10 11 12
对于任意数量的向量,您可以将它们放入
列表
并使用do.call
> do.call("rbind", list(c(1,2,3),c(4,5,6)))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 4 5 6
在较长的列表中,例如:
> do.call("rbind", list(c(1,2,3),c(4,5,6), 7:9, 10:12))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 4 5 6
#[3,] 7 8 9
#[4,] 10 11 12
对于任意数量的向量,您可以将它们放入
列表
并使用do.call
> do.call("rbind", list(c(1,2,3),c(4,5,6)))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 4 5 6
在较长的列表中,例如:
> do.call("rbind", list(c(1,2,3),c(4,5,6), 7:9, 10:12))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 4 5 6
#[3,] 7 8 9
#[4,] 10 11 12
使用do.call(rbind,list(c(1,2,3),c(4,5,6))
或将参数传递为列表Reduce(rbind,list(c(1,2,3),c(4,5,6))
使用do.call(rbind,list(c(1,2,3),c(4,5,6))
或将参数传递为列表Reduce(rbind,list(c(1,2,3),c(4,5,6))
使用do
或将参数作为列表传递Reduce(rbind,list(c(1,2,3),c(4,5,6))
使用do.call(rbind,list(c(1,2,3),c(4,5,6))
或将参数作为列表传递Reduce(rbind,list(c(1,2,3),c(4,5,6))