R 重复向向量添加数字并复制向量
我有两个值 3和5 我做向量R 重复向向量添加数字并复制向量,r,numbers,add,R,Numbers,Add,我有两个值 3和5 我做向量 num1 <- 3 num2 <- 12 a <- c(num1, num2) 重复编号“n”为6 我不知道。这里有两种基本R方法 使用outer,您可以 c(outer(c(3, 12), (12 * 0:4), "+")) [1] 3 12 15 24 27 36 39 48 51 60 或者使用sapply,您可以显式循环并计算成对的和 c(sapply(0:4, function(i) c(3, 12) + (12 * i)))
num1 <- 3
num2 <- 12
a <- c(num1, num2)
重复编号“n”为6
我不知道。这里有两种基本R方法 使用
outer
,您可以
c(outer(c(3, 12), (12 * 0:4), "+"))
[1] 3 12 15 24 27 36 39 48 51 60
或者使用sapply
,您可以显式循环并计算成对的和
c(sapply(0:4, function(i) c(3, 12) + (12 * i)))
[1] 3 12 15 24 27 36 39 48 51 60
outer
返回一个矩阵,其中两个向量的每对元素都已相加c
用于返回向量sapply
循环0:4,然后计算元素总和。在这个例子中,它还返回一个矩阵,因此c
用于返回一个向量。这里有两个以R为基数的方法
使用outer
,您可以
c(outer(c(3, 12), (12 * 0:4), "+"))
[1] 3 12 15 24 27 36 39 48 51 60
或者使用sapply
,您可以显式循环并计算成对的和
c(sapply(0:4, function(i) c(3, 12) + (12 * i)))
[1] 3 12 15 24 27 36 39 48 51 60
outer
返回一个矩阵,其中两个向量的每对元素都已相加c
用于返回向量sapply
循环0:4,然后计算元素总和。在本例中,它还返回一个矩阵,因此c
用于返回向量。这里有一个稍微通用的函数,它将原始向量a
、要添加的数字12
和n
作为输入
f1 <- function(vec, x, n){
len1 <- length(vec)
v1 <- sapply(seq(n/len1), function(i) x*i)
v2 <- rep(v1, each = n/length(v1))
v3 <- rep(vec, n/len1)
return(c(vec, v3 + v2))
}
f1(a, 12, 6)
#[1] 3 12 15 24 27 36 39 48
f1(a, 11, 12)
#[1] 3 12 14 23 25 34 36 45 47 56 58 67 69 78
f1(a, 3, 2)
#[1] 3 12 6 15
这是一个有点通用的函数,它将原始向量
a
、要添加的数字12
和n
作为输入
f1 <- function(vec, x, n){
len1 <- length(vec)
v1 <- sapply(seq(n/len1), function(i) x*i)
v2 <- rep(v1, each = n/length(v1))
v3 <- rep(vec, n/len1)
return(c(vec, v3 + v2))
}
f1(a, 12, 6)
#[1] 3 12 15 24 27 36 39 48
f1(a, 11, 12)
#[1] 3 12 14 23 25 34 36 45 47 56 58 67 69 78
f1(a, 3, 2)
#[1] 3 12 6 15
使用
rep
进行重复,使用cumsum
进行添加:
n = 6
rep(a, n) + cumsum(rep(c(12, 0), n))
# [1] 15 24 27 36 39 48 51 60 63 72 75 84
使用
rep
进行重复,使用cumsum
进行添加:
n = 6
rep(a, n) + cumsum(rep(c(12, 0), n))
# [1] 15 24 27 36 39 48 51 60 63 72 75 84