我正在朱莉娅创建一个函数。它使用数据帧(称为窗口)和两个字符串(A和B)作为输入和子集,使用给定的变量:
function calcs(window, A, B):
fAB=size(window[(window[:ref].==A).&(window[:alt].==B),:])[1]
end
但我得到错误:
syntax: invalid assignment location ":fAB"
Stacktrace:
[1] include_string(::String, ::String) at ./loading.jl:522
我已经尝试在函数之外运行代码(预先分配了变量A="T"
和B="C"
,如下所示:
fAB=size(window[(window[:ref].==A).&(window[:alt].==B),:])[1]
这很好。我是朱莉娅的新手,但找不到这个问题的答案。有人可以帮忙吗?
好像你来自Python世界。在Julia中,您不需要在函数定义中添加:
。这将很好:
function calcs(window, A, B)
fAB=size(window[(window[:ref].==A).&(window[:alt].==B),:])[1]
end
当Julia在函数定义的第一行遇到:
时,它继续解析生成:fAB
符号的以下行中的表达式。
编辑:在Julia 0.7中,解析器检测到此问题。这是将原始代码复制粘贴到REPL的结果:
julia> function calcs(window, A, B):
fAB=size(window[(window[:ref].==A).&(window[:alt].==B),:])[1]
ERROR: syntax: space not allowed after ":" used for quoting
julia> end
ERROR: syntax: unexpected "end"