【发布时间】:2012-12-13 10:35:39
【问题描述】:
我想在变量(列)之间生成图表,这些变量(列)在某个点之上和之下具有相关性,并且 pvalue
到目前为止,这是我的方法的要点,带有一些虚拟数据,我希望有一个指向下一步的指针。
# Create some dummy data
df <- data.frame(sample(1:50), sample(1:50), sample(1:50), sample(1:50))
colnames(df) <- c("var1", "var2", "var3", "var4")
# Find correlations in the dummy data
df.cor <- cor(df)
# Make up some random pvalues for this example
x <- 0:1000
df.cor.pvals <- data.frame(sample(x/1000, 4), sample(x/1000, 4), sample(x/1000, 4), sample(x/1000,4))
colnames(df.cor.pvals) <- c("var1", "var2", "var3", "var4")
# Find the significant correlations
df.cor.extreme <- ((df.cor < -0.01 | df.cor > 0.01) & df.cor.pvals < 0.5)
# Ready data to for plotting
df$rownames <- rownames(df)
df.melt <- melt(df, id="rownames")
# I want to plot the combinations of variables that have a TRUE value
# in the df.cor.extreme matrix
下面是硬编码示例,如果 var1 和 var2 的值为 TRUE。我认为这是我需要某种循环来生成多个 varA 和 varB 相关的图的地方。
ggplot(df.melt[(df.melt$variable=="var1" | df.melt$variable=="var2"),], aes(x=rownames, y=value, group=variable, colour=variable)) +
geom_line()
【问题讨论】:
-
我不明白为什么您的 p 值数据框
df.cor.pvals有 50 行 - 它不应该是与df.cor相同的形状吗? -
您可以使用
df.cor.extreme <- df.cor < -0.01 | df.cor > 0.01获取您正在寻找的相关矩阵 -
修复了我的虚拟数据并使用单个逻辑运算符合并了您的建议。还进行了绘图的第一步,只是无法自动为 df.cor.extreme 矩阵中的那些 TRUE 值绘制图表。
-
@themartinmcfly 我仍然对你的最终情节感到困惑。您想在满足特定条件时绘制原始值。如果 cond(v1,v2) 没问题,情节(什么?)情节(v1)?情节(v1 vs v2)??
-
@agstudy 我最后的情节只是一个例子,如果 var1 和 var2 碰巧相关。我想绘制每一个重要的相关性。多图是指比较两个相关变量的单独图。矩阵 df.cor.extreme (或您的示例中的 df.core.sig )包含说明哪些相关性很重要的数据,但我被困在如何将这些数据转换为将为所有相关性生成图的代码(我正在查看的数据集将有 150 多个图)。