2011-09-22 50 views
2

两个表我有两个尺寸相同的表(矩阵),一个包含相关系数等与P值。我想将它们组合成一张桌子。例如,假设表1中的变量A1和A2之间的相关系数为0.75,表2中的p值为0.045。现在在我的组合表3中,我想要使用:重新定义和合并在R或SAS

表1的condition1:如果a表1的单元中的系数值小于0.4,那么“+”,0.4 < =系数< 0.7然后“++”else“+++”,

表2的condition2:如果单元格中的pvalue表2的小于0.01则 “+++”,0.01 < = p值< 0.05然后 “++” 其他 “+”。

因此对应于表3中A1和A2单元值应该是这样的:+++/++,其中“+++”对应于表中的0.75 1值和++对应表中的0.045 2的p值和“/”只是一个分隔符。

我想做到这一点无论是SAS或[R

回答

4

下面是其中R

首先溶液,创建一些伪数据的工作与

corr <- matrix(runif(16),4,4) 
ps <- matrix(runif(16)^5,4,4) 

每个矩阵可以单独格式化。请注意,这将它们放下到矢量中。矩阵结构将在两个格式化版本粘贴在一起后可以恢复。

corr.fmt <- cut(corr, c(0, 0.4, 0.7, 1), labels=c("+","++","+++")) 
ps.fmt <- cut(ps, c(0, 0.01, 0.05, 1), labels=c("+++","++","+")) 
res <- matrix(paste(corr.fmt, ps.fmt, sep="/"), nrow(corr), ncol(corr)) 

,如果你想要把转换在线

res <- matrix(paste(cut(corr, c(0, 0.4, 0.7, 1), labels=c("+","++","+++")), 
        cut(ps, c(0, 0.01, 0.05, 1), labels=c("+++","++","+")), 
        sep="/"), nrow(corr), ncol(corr)) 
这可以被组合成一个单独的语句