2013-08-27 35 views
1

我需要爲定向統計信息的某些工作創建一個函數。我想用圓圈顯示洪水事件的分佈並計算平均方向和方差。R中的方向統計信息

我需要通過乘以茱莉安日期(360/365)來計算以弧度爲單位的角度值。我遇到了問題,因爲我需要一個功能來考慮我正在考慮的40年記錄中的閏年。即IF閏年角度值=朱利安日期×(360/366)。

我使用的數據是峯閾值以上,所以我沒有一個數據,每一年,在一些年裏,我有一個以上的條目

Date   Time Flow 
04/05/1973 00:00 44.67 
22/06/1974 00:00 128.38 
22/11/1974 23:45 129.15 
26/09/1976 22:00 89.51 
15/10/1976 00:00 139.35 
24/02/1978 19:30 183.69 
27/12/1978 04:00 229.65 
18/03/1980 09:15 117.7 
02/03/1981 22:00 262.39 

非常感謝 豐富

+0

'庫( SOS); findFn(「{wind rose}」'',並且看到'CircStats'和'circular'包... –

回答

1

可能有一個更優雅的方式來做到這一點,但嘗試

df$Year<-format(df$Date,"%Y") 

這應該把一年,如果單列。然後,讓一個新列表明是否是閏年

df$Leap<-0 
df$Leap[df$Year=="1972" | df$ Year=="1976" |df$Year=="1980"]<-1 

取決於你的數據,你會發現它更容易改變到一個號碼,然後使用%%,看看是否可以平均分配其4,但要注意的一年2000

然後你可以使用if語句來的

if (df$Leap==0)效果{做* 360/365}其他{做*366分之360}

+0

以上是if語句的替代方法:'df $ new.value < - ifelse(!is。 na(df $ Leap),df $ Flow * 360/366,df $ Flow * 360/365)' –

+0

謝謝@MarkMiller,簡單得多 –