Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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中for循环中的每个元素_R_For Loop_Scalar - Fatal编程技术网

将向量的所有元素乘以R中for循环中的每个元素

将向量的所有元素乘以R中for循环中的每个元素,r,for-loop,scalar,R,For Loop,Scalar,我有一个向量(x),我想乘以一个标量。我希望整个x向量乘以每个标量值 以下是我想要的结果示例: x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) scalar <- c(1.2, 1.4, 1.6, 1,7, 1.8, 1.9, 2.0) x times 1.2 <- c(1.2, 2.4, 3.6, 4.8, 6, 7.2, 8.4, 9.6, 10.8, 12) x你可以做 #Initialize matrix m = matrix(d

我有一个向量(x),我想乘以一个标量。我希望整个x向量乘以每个标量值

以下是我想要的结果示例:

 x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

 scalar <- c(1.2, 1.4, 1.6, 1,7, 1.8, 1.9, 2.0)

 x times 1.2 <- c(1.2, 2.4, 3.6, 4.8, 6, 7.2, 8.4, 9.6, 10.8, 12)
x你可以做

#Initialize matrix
m = matrix(data = 0, nrow = length(x), ncol = length(scalar),
           dimnames = list(x = x, scalar = scalar), )

#Fill in values
for(i in seq_along(x)){
    for (j in seq_along(scalar)){
        m[i, j] = x[i] * scalar[j]
    }
}
m
#    scalar
#x     1.2  1.4  1.6  1  7  1.8  1.9  2
#  1   1.2  1.4  1.6  1  7  1.8  1.9  2
#  2   2.4  2.8  3.2  2 14  3.6  3.8  4
#  3   3.6  4.2  4.8  3 21  5.4  5.7  6
#  4   4.8  5.6  6.4  4 28  7.2  7.6  8
#  5   6.0  7.0  8.0  5 35  9.0  9.5 10
#  6   7.2  8.4  9.6  6 42 10.8 11.4 12
#  7   8.4  9.8 11.2  7 49 12.6 13.3 14
#  8   9.6 11.2 12.8  8 56 14.4 15.2 16
#  9  10.8 12.6 14.4  9 63 16.2 17.1 18
#  10 12.0 14.0 16.0 10 70 18.0 19.0 20
当然,还有其他使用内置函数的方法,例如

sapply(scalar, function(v1) sapply(x, function(v2) v1 * v2))

带有
outer
的选项,其中默认的
FUN
*
。根据
?outer
,用法为

外部(X,Y,FUN=“*”,…)


您可能需要
外部(x,标量)
这正是我需要的。非常简单,谢谢。外部函数似乎正是我需要的,谢谢你的回答。
sapply
不是
sapply(scalar,
*
,x)
sapply(scalar, function(v1) sapply(x, function(v2) v1 * v2))
outer(x, scalar)