Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何将一个向量添加到另一个保持第一个向量常数的向量?_R - Fatal编程技术网

R 如何将一个向量添加到另一个保持第一个向量常数的向量?

R 如何将一个向量添加到另一个保持第一个向量常数的向量?,r,R,如何将一个向量添加到另一个向量,同时保持第一个向量不变?例如,如果我有c(1,2,3)+1。我会得到2,3,4。如果我想把它放大到+1和+2,我能做些什么来得到它呢 2, 3, 4, 3, 4, 5 直觉上,我想c(1,2,3)+c(1,2),但这不起作用。将评论转化为答案,我们可以使用外部,如@jogo所示 c(outer(1:3, 1:2, FUN='+')) # [1] 2 3 4 3 4 5 另一个选项是rep f <- function(x, y) { x + rep(y

如何将一个向量添加到另一个向量,同时保持第一个向量不变?例如,如果我有
c(1,2,3)+1
。我会得到2,3,4。如果我想把它放大到+1和+2,我能做些什么来得到它呢

2, 3, 4, 3, 4, 5

直觉上,我想
c(1,2,3)+c(1,2)
,但这不起作用。

将评论转化为答案,我们可以使用
外部
,如@jogo所示

c(outer(1:3, 1:2, FUN='+'))
# [1] 2 3 4 3 4 5
另一个选项是
rep

f <- function(x, y) {
  x + rep(y, each = length(x))
}

f(1:3, 1:2)
# [1] 2 3 4 3 4 5

f
outer(1:3,1:2,FUN='+')
c(outer(1:3,1:2,FUN='+'))
x我有时会问最后一个快速问题
seq_len(0)
,返回“整数(0)”。有什么优雅的方法我可以做+0或者只返回第一个向量,或者我最好写一个条件吗?@John Henry你需要把
1:2
改成
0:2
?@markus我正在使用函数
seq_len(x)
来生成基本上是
1:x
的向量。当
x=0时,我遇到了一个问题,因为它返回“整数(0)”。你有什么建议吗?这是一个不同于我在帖子中提出的问题