将每个向量的三个数字除以另一个向量中的值

问题描述 投票:0回答:2

我想执行一个简单的计算。

我有一个数字向量:

> dput(DF_IS[,2])
c(0.00605997931747673, 0.00161894273127753, 0.00182572614107884, 
0.00133636363636364, 0.00379888268156425, 0.00172248803827751, 
0.000883211678832117, 0.0017481662591687, 0.00163145539906103, 
0.000837486457204767, 0.000321167883211679, 0.000825, 0.00144298688193744, 
0.000708860759493671, 0.000871599564744287, 0.000319108280254777, 
0.000518123667377399, 0.000363636363636364, 42.3517169614984, 
28.5714285714286, 50.4672897196262, 30.78125, 42.8571428571429, 
47.8781284004353, 0.0103960396039604, 0.0232472324723247, 0.0214780600461894

包含27个值,我想将其除以下面的数字向量:

dput(DF_IS2[,1])
c(0.0031682160632777, 0.00228591145206846, 0.00142094444568728, 
0.000661218113472149, 0.0010078157353918, 0.000400289437089513, 
40.4634784175177, 40.5055070858594, 0.0183737773741582)

第二向量短3倍,这意味着向量一的前3个值应除以第二向量中的第一个数字。接下来,应该将第一个向量的值4-6除以​​向量​​2中的2nd数,依此类推。我希望根据重复数等对其进行调整。

r
2个回答
0
投票

尝试

dput(DF_IS[,2]) / rep(dput(DF_IS2[,1]), each=3)

0
投票

假设我们可以将第一个向量称为x,将第二个向量称为y

c(t(matrix(x, ncol = 3, byrow = TRUE)/y))

或带有sweep

c(sweep(matrix(x, nrow = 3), 2, y, `/`))
© www.soinside.com 2019 - 2024. All rights reserved.