2016-09-29 6 views
3

Я использую Dataframes в Julia 0.5.1-pre + 2, вытащил и создал локально из github, и я также попробовал загрузить файл загрузки ddd в Mac 0.5, а также У меня возникли проблемы с пониманием того, как правильно работать с общими значениями и массивами с нулевым значением.Использование базовых операторов математики с Julia Nullables в julia-0.5

df = DataFrame(x=rand(20), y=rand(20)) 

mean(df[:x]) 
ERROR: MethodError: no method matching /(::Nullable{Float64}, ::Int64) 

Так это ошибки, кажется, говорили мне, что эта операция не определена для Nullable {} Float и Int и просто пытается операция как

Nullable(2.)/1 

приведет к той же ошибке.

Я смущен, хотя из documentation для DataFrames хотя, так как он показывает такие операции, как:

mean(df[1]) 
median(df[1]) 

mean(df[:A]) 
median(df[:A]) 

df = DataFrame(A = 1:4, B = randn(4)) 
colwise(cumsum, df) 

Все, которые приводят к подобным ошибкам неопределенного метода при выполнении на моей машине.

Я не уверен, что это либо правильное поведение в текущей экосистеме, либо проблема с выпуском сборки/пакета.

+0

Я не думаю, что пример Nullable должен работать, но DataFrames один def должен. –

+0

Я пробовал свой первый пример, и в моем macbook он работает. Я установил Джулию с домашним бочонком. Возможно, вы захотите попробовать. – merch

+0

@merch какая версия Джулии? – lbollar

ответ

0

По какой-то причине у вас установлена ​​версия разработки (Master) DataFrames. Один из возможных способов, который может произойти, если вы запустили Pkg.checkout("DataFrames") в какой-то момент.

DataFrames переживает серьезную переписку, и, следовательно, многие вещи могут не работать корректно в версии разработки. Версия выпуска должна работать правильно. Удаление папки .julia вернуло вас к версии выпуска.

Вы можете проверить статус своих пакетов с помощью функции Pkg.status. Так, например,

julia> Pkg.status("DataFrames") 
    - DataFrames     0.8.4 

Если какой-либо пакет имеет свою основную версию, которая будет указана в результате.

julia> Pkg.status("JavaCall") 
    - JavaCall      0.4.2+    master 

Функция без каких-либо параметров Pkg.status() покажет состояние для всех пакетов.

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