我有一个8行和12列的矩阵,随机分布10个不同的处理,9个重复,最终处理只有6个重复的矩阵。代码可能是多余的,但它是第一个想到的想法和工作。我只是想制定一个方案,以便我可以在实验室中轻松跟进,以避免错误:
library(ggplot2)
library(RColorBrewer)
library(reshape2)
library(scales)
replicates<-c(rep(seq(1:11),c(rep(9,10),6)));replicates
dimna<-list(c("A","B","C","D","E","F","G","H"),seq(1,12,1))
plate<-array(sample(replicates),dim=c(8,12),dimnames=dimna);plate
platec<-melt(plate);platec
guide<-ggplot(platec,aes(Var2,Var1,fill=factor(value))) + geom_tile()+geom_text(aes(fill=factor(value),label=value)) + ylim(rev(levels(platec$Var1))) + theme_bw() + theme(panel.grid.major.y=element_blank(),panel.grid.minor.y=element_blank(),panel.grid.major.x=element_blank(), axis.text.x=element_text(size=10), axis.title.y=element_blank(), axis.text.y=element_text(size=12)) + scale_fill_brewer(name="",palette="Spectral") + scale_x_continuous("",labels=c(seq(1,12,1)),breaks=c(seq(1,12,1)));guide
然而,现在想象我多次对随机矩阵进行测量。对于数据处理,我需要确定处理并在矩阵中复制。我可以在列的最后得到数据:
A1 A2 A3 A4 A5 A6 A7 A8
0.12 0.2 0.124 0.14 0.4 0.18 0.46 0.47
0.13 0.21 0.6 0 0 0.58 0.4 0.2
0.15 0.248 0.58 0.4 0.2 0.248 0.2 0.18
0.18 0.46 0.47 0.3 0.21 0.2 0.21 0.58
0.1784 0.14 0.95 0.7 0.248 0.21 0.248 0.248
。 。
或按行方式:
A1 0.12 0.13 0.15 0.18 0.1784
A2 0.2 0.21 0.248 0.46 0.14
A3 0.124 0.6 0.58 0.47 0.95
A4 0.14 0 0.4 0.3 0.7
A5 0.4 0 0.2 0.21 0.248
A6 0.18 0.58 0.248 0.2 0.21
A7 0.46 0.4 0.2 0.21 0.248
A8 0.47 0.2 0.18 0.58 0.248
...
在 R 中是否存在一种方法,我可以将随机矩阵与我收集的数据联系起来,我不知道如何开始均匀。我真的很抱歉没有尝试,但我真的不知道如何开始
答案 0 :(得分:1)
我想我知道你在问什么...让我知道这是否有意义。 你需要先设计一个设计数据框 - 让我们制作一个假板:
Wells <- paste0(rep(LETTERS[1:8],each=12), rep(1:12, times = 8))
design <- data.frame(Wells, ID = sample(letters[1:10], 96, replace = TRUE))
然后当你得到你的结果时,假设它在一个数据框中(你的'rowwise fashion?'),你可以将它们合并在一起:
#dummy result data
result <- data.frame(Wells, measure = rnorm(96, 0.5))
result_whole <- merge(design, result)
head(result_whole)
# Wells ID measure
#1 A1 j -0.4408472
#2 A10 d -0.5852285
#3 A11 d 1.0379943
#4 A12 e 0.6917493
#5 A2 g 0.8126982
#6 A3 b 2.0218953
如果你的设计保持整洁,这非常简单。然后,您可以标记结果(在这种情况下为measure
),但是您要跟踪所有结果。
我希望能解决你的问题......