朱莉娅报告一个额外的 ) 当它不存在时

Julia reporting an extra ) when it doesn't exist

我在 Julia 中有这个 for 循环:

begin
    countries_data_labels = ["Canada", "Italy", "China", "United States", "Spain"]
    y_axis = DataFrame()
    
    
    for country in countries_data_labels
        
        new_dataframe = get_country(df, country)
        
        new_dataframe = DataFrame(new_dataframe)
        
        df_rows, df_columns = size(new_dataframe)
        
        new_dataframe_long = stack(new_dataframe, begin:end-4)
        
        y_axis[!, Symbol("$country")] = new_dataframe_long[!, :value]
        
    end
end

我收到了这个错误:

syntax: extra token ")" after end of expression

我决定在取消注释后每次都注释 for 循环的所有主体,除了第一个循环和 运行 单元格,看看是哪一行引发了这个错误,它是主体中的第 4 行:

new_dataframe_long = stack(new_dataframe, begin:end-4)

没有理由存在此错误。此行没有多余的括号。

我猜你的意思是:

stack(new_dataframe[begin:end-4, :])

参见下面的 MWE 示例:

julia> df = DataFrame(a=11:16,b=2.5:7.5)
6×2 DataFrame
 Row │ a      b
     │ Int64  Float64
─────┼────────────────
   1 │    11      2.5
   2 │    12      3.5
   3 │    13      4.5
   4 │    14      5.5
   5 │    15      6.5
   6 │    16      7.5

julia> stack(df[begin:end-3, :])
3×3 DataFrame
 Row │ a      variable  value
     │ Int64  String    Float64
─────┼──────────────────────────
   1 │    11  b             2.5
   2 │    12  b             3.5
   3 │    13  b             4.5