R:链接seq和sort会产生意外的结果

R:链接seq和sort会产生意外的结果,r,sorting,functional-programming,seq,R,Sorting,Functional Programming,Seq,我试图理解(对我而言)链接seq和sort的意外行为: > seq(sort(c(5,1))) [1] 1 2 > sort(c(5,1)) [1] 1 5 > seq(1,5) [1] 1 2 3 4 5 > seq(c(sort(c(5,1)))) [1] 1 2 我希望,第一行产生一个从1到5的序列,因为这是我想要得到的,但是我不能让R仅仅通过将这些链接到函数来实现这一点。为什么?如果试图将参数作为向量传递给函数,可以使用do.call()。它允许您使用函数名及其

我试图理解(对我而言)链接seq和sort的意外行为:

> seq(sort(c(5,1)))
[1] 1 2
> sort(c(5,1))
[1] 1 5
> seq(1,5)
[1] 1 2 3 4 5
> seq(c(sort(c(5,1))))
[1] 1 2

我希望,第一行产生一个从1到5的序列,因为这是我想要得到的,但是我不能让R仅仅通过将这些链接到函数来实现这一点。为什么?

如果试图将参数作为向量传递给函数,可以使用
do.call()
。它允许您使用函数名及其参数列表执行函数调用

do.call(seq, as.list(sort(c(5,1)))) # vector needs to be converted to a list
#[1] 1 2 3 4 5
您的示例返回
[1]12
,因为每当我们传递
seq
一个长度为
>1
的向量时,它将充当
seq\u。换句话说,将创建一个长度等于向量中元素计数的序列