2015-11-29 4 views
1

Я использую RProvider с F # в VS2012. Я хотел бы передать массив пользовательских разрывов гистограммы (края бинов) в R.hist. Все хорошо, когда я передаю целое число (см. Строку, которая закомментирована). Не могли бы вы мне помочь? Каков правильный способ обработки перегрузки функций в этом случае?Как передать массив разрывов гистограммы в R.hist, используя RProvider в F #?

R документация на R.hist здесь (см "перерыв" ARG): https://stat.ethz.ch/R-manual/R-devel/library/graphics/html/hist.html

рабочий пример ниже:

let arr = [| 12.3; 12.4; 13.3; 12.9; 13.2; 13.6 |] 
let breaks = [| 12.0; 12.5; 13.0; 13.5; 14.0 |] 
let h_tmp = R.hist(namedParams ["x", box arr; 
           "breaks", box breaks; // <------ fails here! 
           "plot", box true; ]) 
let h_counts = h_tmp.AsList().["counts"].AsNumeric().GetValue<float[]>() 

Большое спасибо.

ответ

2

Какая ошибка вы получаете?

Я попытался воспроизвести это на моей машине с последними RProvider 1.1.15 и работает без каких-либо ошибок и дает следующие результаты, которые, как представляется, правильно:

val h_counts : float [] = [|2.0; 1.0; 2.0; 1.0|] 
+0

Привет, спасибо за проверку ... Я использую RProvider 1.0.13 (хорошо, я сделаю обновление) ... Я выполнил код, описанный выше в оболочке .fsx, и он отлично работает. Он правильно устанавливает гистограмму. Результат такой же, как у вас. Однако он терпит неудачу, когда я использую функцию, которая создает гистограмму в Excel через ExceDNA ... – tinoswe

+0

Хорошо. Это работает и в ДНК Excel. Однако приведенный выше код является упрощением реальной проблемы. Спасибо, что помогли выяснить. Проблема в другом месте. Я посмотрю поближе. Он не подходит по другим причинам. Я закрываю нить. – tinoswe