2014-10-17 41 views
0

我有一組由不同參與者產生的數據,通過給出值1-5來評分不同的視覺障礙。 (該表具有約2.7k行)scatter plot with循環中唯一值的總和r

Participant是文本(50個不同的ID),列Impairment是文本(9種不同的類型),列Score是數字(1-5)。

我想爲每個Participant生成散點圖,顯示ScoreImpairment。這裏是我一直在使用的代碼:

for (i in unique(Master$Participant)) { 
    d <- subset(Master, Master$Participant == i) 
    scatter <- ggplot(d, aes(impairment, TechnicalQuality)) 
    scatter + stat_sum(aes(size = ..n..)) 
} 

它只是不會工作。

我嘗試下面的代碼,做工作:

for (i in unique(Master$Participant)) { 
    d <- subset(Master, Master$Participant == i) 
    plot(d$impairment, d$TechnicalQuality, type ="p") 
} 

但這不是我想要的。 (我想要散點圖上的唯一分數的總和標籤)

我不知道爲什麼這第一個不起作用,第二個!任何人有任何想法?

預先感謝

下面是示例數據:

M_Participant <- c("A001", "A002", "A010", "B002", "B002", "B003", "A010", "B002") 
M_Impairment <- c ("H0", "H1", "H3", "H2", "H4", "H2", "H3", "H0") 
M_Score <- c(1, 2, 4, 3, 5, 4, 3, 1) 
Master <- data.frame(Participant = M_Participant, Impairment = M_Impairment, 
        Score= M_Score) 
+0

我會猜測你爲你想要的東西寫錯了代碼。沒有一個可重複的例子,這就是我得到的。 – 2014-10-17 01:22:21

+0

感謝您的快速評論,我只是在問題底部添加了示例數據以供參考。 – 2014-10-17 01:39:39

+1

@DJay你的第二個情節不適用於給定的例子。我有以下錯誤:plot.window(...)中的錯誤:需要有限'xlim'值 – RockScience 2014-10-17 02:37:03

回答

0

包住ggplot情節呼叫在print,從一個循環或功能內產生ggplot/lattice繪圖時,這是必要的。

for (i in unique(Master$Participant)) { 
    d <- subset(Master, Master$Participant == i) 
    scatter <- ggplot(d, aes(Impairment, Score)) 
    print(scatter + stat_sum(aes(size = ..n..))) 
} 

注意,你也可以做類似如下:

library(ggplot2) 
p <- ggplot(Master, aes(Impairment, Score)) + geom_point() 
p + facet_wrap(~ Participant) 

ggplot

或者與lattice

library(lattice) 
xyplot(Score ~ Impairment | Participant, data=Master, pch=20, col=1, 
     scales=list(alternating=FALSE, tck=c(1, 0))) 

lattice

+0

感謝您們所有的意見!我通過jbaums運行代碼,所有這些代碼都很棒!乾杯! :-) – 2014-10-17 15:42:22

+0

@DJay:不客氣。你可以通過提供有用的答案來表達你的讚賞,如果一個帖子解決了你的問題,你可以將其標記爲接受的答案;) – jbaums 2014-10-17 15:43:02

+1

親愛的jbaums,我只是將你的答案標記爲接受的答案。由於我是新用戶,因此我沒有足夠的信譽投票。一旦我獲得足夠的收入,我會做。再次感謝! – 2014-10-17 18:59:22