2014-03-05 38 views
1

我想分析天氣信息來練習我的R技巧,但我有點卡住了。我有一個數據框與列的溫度,日期和月份。 現在我需要嘗試繪製數據框的X軸上的日期和Y軸上的溫度,並且該月份應該確定點的形狀/顏色(第5個月是紅色,第6個月是綠色等)。 )。我搜索堆棧Overfow的答案,並嘗試了一些代碼,但沒有很好地工作。如何根據一個因子在R中獲得不同的點?

我試圖例如:

set.seed(1);圖(X $日,X $溫度,PCH =糊(5:9)) ,但給我的隨機數在圖表上(抱歉,不能上傳圖片,信譽太低...)

當我將粘貼的數字設置爲1:5時,情節中的所有數字都發生了變化,因此我認爲這會將數字放入隨機數(?)中。的因素是:

f <- factor(m) 

,同時m爲幾個月(5:9)

Day Temp Month 
20 20 62  5 
21 21 59  5 
22 22 73  5 
23 23 61  5 
24 24 61  5 
25 25 57  5 
26 26 58  5 
27 27 57  5 
28 28 67  5 
29 29 81  5 
30 30 79  5 
31 31 76  5 
32 1 78  6 
33 2 74  6 
34 3 67  6 
35 4 84  6 
36 5 85  6 
37 6 79  6 
38 7 82  6 
39 8 87  6 
40 9 90  6 
41 10 87  6 
42 11 93  6 
43 12 92  6 
44 13 82  6 
45 14 80  6 
46 15 79  6 
47 16 77  6 
48 17 72  6 
49 18 65  6 

所以與在數據幀中的月份數5曲線中的天必須在5號情節,月份數量6天需要數量6的情節和所有5個月。

簡而言之:我試圖獲取位於某個因子中的每個月的不同點/數字。

+0

嘗試共享一些數據。 [請參閱此處瞭解提示(使用'dput'!)](http://stackoverflow.com/q/5963269/903061)。在你的控制檯中輸入'paste(5:9)'來查看它輸出的內容。 (提示:它不是隨機的。)另外,當你說「因子是f < - 因子(m)',但你需要首先定義'm'纔有意義。 – Gregor

+0

它們不是隨機的。告訴它在你的積分應該去的地方繪製數字5,6,7,8和9 – rawr

+0

是的抱歉,m是數據獲取地點的5個月,所以從第5個月到第9個月(所以總數153天,這意味着3個月31天的月份和2個30天的月份) – Daslicey

回答

0

如何:

set.seed(101) 
d <- data.frame(x=rnorm(100),y=rnorm(100),m=sample(5:9,replace=TRUE)) 
pchvec <- as.character(5:9) 
with(d,plot(x,y,pch=pchvec[as.numeric(factor(m))])) 

或者在幾個步驟,沒有with()魔法:

m.ind <- as.numeric(factor(d$m)) 
pchvec2 <- pchvec[m.ind] 
plot(y~x,data=d,pch=pchvec2) 

或者在你的情況只是

with(x,plot(Day,Temp,pch=as.character(Month))) 

應該工作。

+0

謝謝你真是太棒了! – Daslicey

相關問題