julia - 索引 Julia DataFrame 时感叹号的含义是什么?
问题描述
我认为感叹号!
是逻辑NOT
运算符的符号。现在,在学习包中的索引时DataFrames
,我遇到了这个:data[!,:Treatment]
. 这似乎与使用已知的冒号符号相同:
data[:,:Treatment]==data[!,:Treatment]
是true
。
那么为什么会有这种冗余呢?
解决方案
!
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
推荐阅读
- bash - 编写 shell 脚本以在目录中的多个文件上运行 Rscript
- python-3.x - 如何从 Python 中的 HTML 表格列中提取数据
- sql - PostgreSQL - 获取所有具有最小值最大值的行
- mysql - mysql 在插入带参数的值时出错
- c# - 如何在 C++ 和 C# 中跟踪函数的进度
- json - 使用“十一缓存资产”时无法遍历数组
- mysql - NodeJS Seqeulize 一对一关系在数据库级别不真实?
- r - 在 R 中使用字符串作为参数
- node.js - 我需要使用 mailgun 处理传入的邮件,这不起作用
- python - FastAPI:我也可以将 Depends() 用于 POST 中的参数吗?