我正在尝试在 2 个矩阵中的行上使用 cor.test,即 cer 和 par。
cerParCorTest <-mapply(function(x,y)cor.test(x,y),cer,par)
但是,mapply 适用于列。
此问题已在Efficient apply or mapply for multiple matrix arguments by row中讨论。我尝试了拆分解决方案(如下)
cer <- split(cer, row(cer))
par <- split(par, row(par))
它会导致错误(而且速度很慢)
In split.default(x = seq_len(nrow(x)), f = f, drop = drop, ...) :
data length is not a multiple of split variable
我还尝试了 t(par) 和 t(cer) 让它在行上运行,但它会导致错误
Error in cor.test.default(x, y) : not enough finite observations
martices 如下所示(对于 cer 和 par 相同):
V1698 V1699 V1700 V1701
YAL002W(cer) 0.01860500 0.01947700 0.02043300 0.0214740
YAL003W(cer) 0.07001600 0.06943900 0.06891200 0.0684330
YAL005C(cer) 0.02298100 0.02391900 0.02485800 0.0257970
YAL007C(cer) -0.00026047 -0.00026009 -0.00026023 -0.0002607
YAL008W(cer) 0.00196200 0.00177360 0.00159490 0.0014258
我的问题是为什么转置矩阵不起作用,什么是一个简短的解决方案,它允许使用 mapply for cor.test() 在行上运行。
对于这篇长篇文章,我深表歉意,并提前感谢您的帮助。