在R中将维度为3x1的列向量的第一个元素除以维度为5x1的列向量,依此类推

在R中将维度为3x1的列向量的第一个元素除以维度为5x1的列向量,依此类推,r,vector,R,Vector,我有以下两个列向量的示例: a = [1,2,3] b = [4,5,6,7,8] 我想要的是: 1/4,1/5,1/6,1/7,1/8,2/4,2/5,2/6,2/7,2/8,3/4,3/5,3/6,3/7,3/8 我将感谢你的帮助。请注意,/是除法运算符。谢谢。您可以使用outer c(outer(a,b, FUN="/")) #[1] 0.2500000 0.5000000 0.7500000 0.2000000 0.4000000 0.6000000 0.1666667 #[8] 0

我有以下两个列向量的示例:

a = [1,2,3]
b = [4,5,6,7,8]
我想要的是:

1/4,1/5,1/6,1/7,1/8,2/4,2/5,2/6,2/7,2/8,3/4,3/5,3/6,3/7,3/8

我将感谢你的帮助。请注意,/是除法运算符。谢谢。

您可以使用
outer

c(outer(a,b, FUN="/"))
#[1] 0.2500000 0.5000000 0.7500000 0.2000000 0.4000000 0.6000000 0.1666667
#[8] 0.3333333 0.5000000 0.1428571 0.2857143 0.4285714 0.1250000 0.2500000
#[15] 0.3750000
如果你想让它成为分数

library(MASS)
fractions(c(outer(a,b, FUN="/")))
#[1] 1/4 1/2 3/4 1/5 2/5 3/5 1/6 1/3 1/2 1/7 2/7 3/7 1/8 1/4 3/8
或者如果你想这样表现它

 c(t(outer(a[,1], b[,1], FUN= paste, sep="/")))
 #[1] "1/4" "1/5" "1/6" "1/7" "1/8" "2/4" "2/5" "2/6" "2/7" "2/8" "3/4" "3/5"
 #[13] "3/6" "3/7" "3/8"
数据
a很抱歉给您带来困惑,但我只是想,不管软件是什么,总的来说都是矩阵。我所说的列向量是指像上面a和b这样的矩阵列。所以,我想要的是1除以4,然后1除以5,…,1除以8,2除以4,…,2除以8等等。谢谢你的帮助和理解我的问题,不管我们使用什么软件!这很好用。
a <- matrix(1:3)
b <- matrix(4:8)