我想执行一个简单的计算。
我有一个数字向量:
> 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 倍,这意味着向量 1 的前 3 个值应除以第二个向量中的第一个数字。接下来,从第一个向量4-6
的值应除以向量 2 中的2nd
数,依此类推。我想根据重复次数等进行调整。
假设第一个向量称为x
,第二个向量称为y
我们可以将x
放入矩阵中并执行
n <- 3
c(t(matrix(x, ncol = n, byrow = TRUE)/y))
或与sweep
c(sweep(matrix(x, nrow = n), 2, y, `/`))
尝试
dput(DF_IS[,2]) / rep(dput(DF_IS2[,1]), each=3)