我使用Hmisc的rcorr()进行多次相关(大约500 x 40大数据帧)。此命令返回一个列表,但我只将列表中需要的内容保存为数据帧。因此,我有两个数据框,一个是Pearson rho,另一个是p值。数据帧之间的所有内容都是相同的,但是单元格值。
AdiASigFatCorr <- rcorr(as.matrix(AdiASigFat), type=c("pearson"))
AdiASigFatCorrP <- as.data.frame(AdiASigFatCorr$P)
AdiASigFatCorrR <- as.data.frame(AdiASigFatCorr$r)
现在,我想只保留p值 AdiASigFatCorrP(p值): AdiASigFatCorrR(rho值): 如果相应的p值<1,我想将rho值子集化。 0.05。 我已经阅读了很多并尝试使用subset()等许多不同的方法,但我完全卡住了.. 如果为此目的制作了其他方法/包,请赐教。 谢谢! pre_ISI.kg_ pre_ISI.mmol pre_Weight
pre_BMP3 0.0002293035 0.0006511392 0.043833537
pre_CES1 0.0604775694 0.0791677406 0.076397970
pre_CETP 0.0336650792 0.0641110946 0.361560818
pre_ISI.kg_ pre_ISI.mmol pre_Weight
pre_BMP3 0.6838388 0.6459200 -0.4148415
pre_CES1 -0.3887246 -0.3653443 0.3685230
pre_CETP 0.4349413 0.3837841 -0.1948498
答案 0 :(得分:0)
调用rho矩阵corr.rho
和p值矩阵corr.p
,您可以使用简单的向量运算来查找corr.rho
的所有值,使corr.p < 0.05
。如果数据不是矩阵形式,则可以将其强制转换为as.matrix
> corr.rho[corr.p < 0.05]
[1] 0.6838388 0.4349413 0.6459200 -0.4148415