Julia DataFrame 中 "$i" 和 :$( "$i" ) 之间的差异

  • 本文关键字:之间 DataFrame Julia julia
  • 更新时间 :
  • 英文 :


i=1时,println(typeof("$i"))println(typeof(:($("$i"))))都给出Stringprintln("$i")println(:($("$i")))都给出1。但是,以下代码

using DataFrames
df = DataFrame()
i = 1
df.:($("$i")) = [0.0]
println(df)

工作,但以下代码

using DataFrames
df = DataFrame()
i = 1
df."$i" = [0.0]
println(df)

不起作用。后一个代码出了什么问题?

我不建议您依赖这两种语法。这些是Julia解析器的角案例。

事实上:

df.:($("$i")) = [0.0]

在Julia解析器方面,作品很可能不是一个有意识的设计决策。注意:

df.:($("$i"))

失败。

如中所述https://dataframes.juliadata.org/stable/man/getting_started/:

请注意,在形式df."col":var"col"中,使用$将变量插值到字符串中是不起作用的。

如果要使用插值,请直接调用setproperty!getproperty或使用getindex/setindex!,在这种情况下:

df[!, "$i"] = [0.0]

最新更新