除了使用p值矩阵外,我基本上需要完成this。我只是不知道如何保留行名和列名:
# Makeup dataframe with p-values only
val_1 = as.numeric(c("2.858941e-02", "3.605727e-02"))
val_2 = as.numeric(c("0.09654", "3.482003e-02"))
val_3 = as.numeric(c("3.517555e-02", "0.07965"))
faux.data = data.frame(val_1, val_2, val_3, row.names = c("val_4", "val_5"))
> faux.data
val_1 val_2 val_3
val_4 0.02858941 0.09654000 0.03517555
val_5 0.03605727 0.03482003 0.07965000
# Filter, but I lose the column an row names
filtered = faux.data[faux.data < 0.05]
> filtered
[1] 0.02858941 0.03605727 0.03482003 0.03517555
答案 0 :(得分:1)
as.data.frame.table函数可以将矩阵转换为长格式的数据帧:
然后您可以使用[.data.frame
进行选择:
tfaux <- as.data.frame.table(data.matrix(faux.data))
tfaux
Var1 Var2 Freq
1 val_4 val_1 0.02858941
2 val_5 val_1 0.03605727
3 val_4 val_2 0.09654000
4 val_5 val_2 0.03482003
5 val_4 val_3 0.03517555
6 val_5 val_3 0.07965000
tfaux[ tfaux$Freq < 0.05, ]
Var1 Var2 Freq
1 val_4 val_1 0.02858941
2 val_5 val_1 0.03605727
4 val_5 val_2 0.03482003
5 val_4 val_3 0.03517555
答案 1 :(得分:0)
如果您只需要数据可视化
faux.data[faux.data < 0.05] <- ""
否则
faux.data[faux.data < 0.05] <- NA
您还可以通过带有原始数据(see this other SO question)的热图来可视化重要的p值
library(pheatmap)
pheatmap(faux.data, cluster_rows = F, cluster_cols = F,
color = c("grey80", "deepskyblue4"),
breaks = c(0, 0.05, 1), cex=1.2)