2013-08-17 64 views
0

我有1200個探針(行中)的數據框和兩組數組,每組九列。前九欄命名爲「正面」,後九欄命名爲「負面」。我想通過使用盒圖選擇12個隨機探針來表明表達正常。我的代碼如下:如何創建多行的箱線圖?

f<-c(rep("positive", 9), rep("negative", 9)) 
for(i in seq(from=1, to=1200, by=10)){ 
    boxplot(probes[i]~f,col="lightblue",main="Expression of genes studied Cells") 
} 

但我收到以下錯誤:

Error in model.frame.default(formula = probes[i] ~ f) : 
    variable lengths differ (found for 'f') 

如果我用箱形圖的正常工作一個探頭。我得到兩個箱子,一個對應於「積極的」,另一個爲「負面」:

f<-c(rep("positive", 9), rep("negative", 9)) 
genex<-as.numeric(dat.fp.labeled["NM_139321.1_psr1_at",]) 
boxplot(genex~f,col="lightblue",main="Expression of NM_139321.1_psr1_at samples") 
+0

你能提供關於結構的更多細節你的數據?探測器是一個矢量嗎?如果沒有,那麼你在調用'boxplot'時會錯誤地編制索引。此外,您當前的代碼將創建120個箱型圖,但我不認爲這就是您想要做的... – Thomas

+0

可能重複[按兩個條件分組的多個箱型](http://stackoverflow.com/questions/13124827/多箱線形 - 按兩條件分組) – Metrics

+0

它是一個數據幀,包含1200行和18列.18列有兩種類型。前9名被命名爲「正面」,後9名被命名爲「負面」。如果我爲單排而言,它可以很好地生成兩個框,每個框用於正面和負面。代碼:是:f <-c(rep(「positive」,9),rep(「negative」,9)) genex <-as.numeric(dat.fp.labeled [「NM_139321.1_psr1_at」,])boxplot(genex〜f,col =「lightblue」,main =「NM_139321.1_psr1_at樣本的表達式」) – user2649495

回答

0

此,我認爲,這是你想要什麼:

set.seed(1) 
probes <- data.frame(matrix(rnorm(1200*18),ncol=18)) 
f<-c(rep("positive", 9), rep("negative", 9)) 
myrows <- sample(1:1200,12,FALSE) 
boxplot(unlist(probes[myrows[1],])~f) # first plot 
for(i in myrows){ 
    boxplot(unlist(probes[i,])~f) 
    Sys.sleep(1) # wait for each plot for 1 sec 
} 
+0

嗨托馬斯,感謝您的示例代碼。我有一個問題:我會在哪裏放置我的數據?在您的代碼中,您正在創建數據框,探針。讓我們說我的數據在名爲data.fp的數據框中,我可以在哪裏放入代碼?謝謝 – user2649495

+0

在for循環中,它表示「unlist(probes [i,])''。如果你把它改成'unlist(data.fp [i,])',我想你應該得到預期的結果。 – Thomas