如何在R中为内部其他创建一个?
我有两个不同大小的向量:如何在R中为内部其他创建一个?,r,loops,for-loop,vector,R,Loops,For Loop,Vector,我有两个不同大小的向量: 向量1=[1,2,3] 向量2=[1,2,3,4,5] 我想在他们之间做手术。矢量1中的每个数字加上矢量2中的每个数字。诸如此类: 我在一个for的内尝试了一个for,但没有成功。有什么帮助吗 vector1 <- data.frame(c(1, 2, 3)) vector2 <- data.frame(c(1, 2, 3, 4, 5)) for (i in vector1) { for (j in vector2) { a <- i
- 向量1=[1,2,3]
- 向量2=[1,2,3,4,5]
for
的内尝试了一个for
,但没有成功。有什么帮助吗
vector1 <- data.frame(c(1, 2, 3))
vector2 <- data.frame(c(1, 2, 3, 4, 5))
for (i in vector1) {
for (j in vector2) {
a <- i + j
}
}
您可以使用outer
> vector1 <- c(1, 2, 3)
> vector2 <- c(1, 2, 3, 4, 5)
> outer(vector1, vector2, FUN="+")
[,1] [,2] [,3] [,4] [,5]
[1,] 2 3 4 5 6
[2,] 3 4 5 6 7
[3,] 4 5 6 7 8
您可以使用outer
> vector1 <- c(1, 2, 3)
> vector2 <- c(1, 2, 3, 4, 5)
> outer(vector1, vector2, FUN="+")
[,1] [,2] [,3] [,4] [,5]
[1,] 2 3 4 5 6
[2,] 3 4 5 6 7
[3,] 4 5 6 7 8
for
是一种非常低效的方法。这里有一种使用base R的sapply
的方法,尽管我觉得应该有更好的方法-
c(sapply(vector1, function(x) x + vector2))
# [1] 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8
for
是一种非常低效的方法。这里有一种使用base R的sapply
的方法,尽管我觉得应该有更好的方法-
c(sapply(vector1, function(x) x + vector2))
# [1] 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8