是否可以做到以下几点:
loc1 <- c("Aa", "Aa", "aa", "Aa")
loc2 <- c("aa", "aa", "aa", "AA")
loc3 <- c("aa", "Aa", "aa", "aa")
gen <- data.frame(loc1, loc2, loc3)
loc1g <- c(0.01, 0.5, 1, 0.75)
loc2g <- c(0.2, 0.1, 0.2, 0.6)
loc3g <- c(0.8, 0.8, 0.55, 1)
pval <- data.frame(loc1g, loc2g, loc3g)
我想打印到一个文件以生成数据帧,这种方式由 pval 数据帧有条件地格式化。生成颜色的比 (row1, col1) 的平均值取决于 pvale (row1, col1)。以下是颜色编码:
0 to 0.3 is "red" text color
0.31 to 0.7 is "yellow"
> 0.7 is "red"
gen[1,1] 将以红色文本颜色打印为“Aa”,依此类推....
感谢您的帮助。
编辑:
我对打印而不是在图表中绘图更感兴趣。如果我可以将输出保存为 MS excel 并在 MSEXCEL 中打开,那就太好了。我也可以是其他类型的文本编辑器格式,可以读取颜色编码的文本。因为我的原始数据矩阵的尺寸应该是 1000 x 1000 甚至更大。我想快速了解每个 gen 类别的 p 值。
听起来你想模仿 Excel。以下是几个例子:
x = 1:ncol(pval)
y = 1:nrow(pval)
# Colored backgrounds
dev.new(width=4, height=4)
image(x, y, t(as.matrix(pval)),
col = c('red', 'yellow', 'red'),
breaks = c(0, 0.3, 0.7, 1),
xaxt='n',
yaxt='n',
ylim=c(max(y)+0.5, min(y)-0.5),
xlab='',
ylab='')
centers = expand.grid(y, x)
text(centers[,2], centers[,1], unlist(gen))
# Colored text
dev.new(width=4, height=4)
image(x,y, matrix(0, length(x), length(y)),
col='white',
xaxt='n',
yaxt='n',
ylim=c(max(y)+0.5, min(y)-0.5),
xlab='',
ylab='')
pvals = unlist(pval)
cols = rep('red', length(pvals))
cols[pvals>0.3 & pvals<=0.7] = 'yellow'
text(centers[,2], centers[,1], unlist(gen), col=cols)
grid(length(x),length(y))
我是一名优秀的程序员,十分优秀!