2015-02-27 3 views
0

Я использовал R's circular пакет, а также openair для печати ветров. То, что я не могу сделать, это показать частоты ветров в диапазоне бинов (показано ниже), которые я хотел бы использовать. Как определить частоты (в процентах и ​​относительные) с помощью этих пакетов? Я хотел бы распечатать их или на самом деле создать гистограмму, используя это. Бункеры показаны нижеЧастота ветра в R

N, NNE, NE ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW

require(openair) 
require(circular) 
df<- read.csv("Direction.csv", header = TRUE) 
df1<-df[c(-1,-2,-3,-4,-5,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17,-18,-19,-20)] 
dput(head(df2)) 
structure(list(X850mb = structure(c(355, 349, 350, 65, 36, 56, 
197, 282, 162, 219, 353, 32, 6, 14, 195, 45, 8, 182, 285, 285, 
260, 315, 341, 343, 321, 10, 49, 61, 49, 159, 170, 49, 64, 98, 
137, 178, 279, 173, 223, 221, 283, 246, 227, 231, 301, 212, 259, 
329, 293, 229, 205, 261, 354, 349, 254, 311, 47, 176, 195, 224, 
253, 293, 21, 34, 98, 225, 187, 204, 276, 280, 277, 233, 204, 
233, 218, 212, 279, 320, 334, 205, 288, 15, 325, 322, 356, 308, 
0, 343, 349, 10, 301, 340, 346, 281, 218, 305, 344, 304, 254, 
275, 246, 306, 271, 309, 191, 197, 296, 312, 224, 265, 336, 2, 
356, 336, 340, 349, 351, 11, 15, 306, 270, 249, 257, 271, 303, 
328, 358, 52, 241, 298, 309, 259, 285, 268, 313, 339, 359, 314, 
348, 309, 302, 322, 315, 285, 327, 327, 306, 29, 105, 111, 316, 
1, 25, 332, 352, 270, 275, 238, 308, 338, 343, 349, 339, 346, 
352, 24, 17, 5, 8, 9, 346, 318, 338, 22, 18, 337, 280, 274, 301, 
302, 286, 6, 43, 35, 6, 26, 356, 4, 356, 325, 336, 20, 345, 354, 
18, 54, 358, 313, 12, 327, 317, 329, 339, 274, 157, 143, 190, 
306, 327, 332, 359, 49, 14, 323, 328, 331, 1, 306, 339, 21, 33), circularp = structure(list(type = "angles", units = "degrees", 
    template = "geographics", modulo = "2pi", zero = 1.5707963267949, 
    rotation = "clock"), .Names = c("type", "units", "template", 
"modulo", "zero", "rotation")), class = c("circular", "integer" 
))), .Names = "X850mb") 
rose.diag(df2, bins = 16, main = '30yrs', col= 'darkgrey', prop = 2.0) 
+6

Если вы хотите помочь, вы будете иметь, чтобы создать [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) с образцом ввода и желаемым выходом. Покажите, какой код вы используете. Сейчас ваш список основных направлений имеет одно из значений. Я не понимаю, что вы хотите с этим сделать. – MrFlick

+1

Это не воспроизводимый пример. –

+0

Но какую команду вы использовали или пытаетесь использовать для достижения вашего запроса? –

ответ

0

Я подозреваю, что-то вроде этого является то, что вы после:

x <- cut(((as.vector(df2$X850)) + 360/(16*2))%% 360, 
    seq(0,360,360/16) , 
    c('N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW')) 
table(x) 
+0

Это шаг в правильном направлении. как я могу их перечислить в частотную таблицу, чтобы я знал, сколько из них имеет место? По существу определяют частоту. – Gunnerfan

+0

вы хотите использовать 'table()' для табуляции значений. См. Правки. – Jthorpe

+0

спасибо за помощь. Теперь, когда я хочу, чтобы 'cumsum()' выполнял процентную статистику, я получаю эту ошибку 'cumsum (table) Ошибка в Math.factor (table): 'cumsum' не имеет смысла для факторов'. Как бы вы это определили? Я сейчас работаю над этим, чтобы понять это. Благодаря! – Gunnerfan

Смежные вопросы