首页 > 解决方案 > 索引 Julia DataFrame 时感叹号的含义是什么?

问题描述

我认为感叹号!是逻辑NOT运算符的符号。现在,在学习包中的索引时DataFrames,我遇到了这个:data[!,:Treatment]. 这似乎与使用已知的冒号符号相同:

data[:,:Treatment]==data[!,:Treatment]true

那么为什么会有这种冗余呢?

标签: julia

解决方案


!in indexing 特定于DataFrames,并表示您希望引用存储数据的基础向量,而不是它的副本。DataFrames 您可以在此处阅读有关索引的所有信息。在您的示例中,两者都是==因为所有值都是相同的,但它们不是===因为df[:, :Treatment]为您提供了基础数据的副本。

例子:

julia> using DataFrames

julia> df = DataFrame(y = [1, 2, 3]);

julia> df[:, :y] == df[!, :y] # true because all values are equal
true

julia> df[:, :y] === df[!, :y] # false because they are not the same vector
false

推荐阅读