专栏
标签
使用 find 函数报错:ERROR: TypeError: non-boolean (Missing) used in boolean context
技术分享
发布于 2025-07-10 10:54:31
查看 1过去327天

由于 == 函数不支持 non-boolean (Missing) 类型的数据,因此会导致报错,需要使用ismissing 函数先进行判断和筛选,再使用 == 和 find 函数就不会报错。

示例:
1.创建一个 Union{Missing, String}} 类型的数组 X,设置 X[3] 为需要找到的特定字符串:

1.创建一个 Union{Missing, String}} 类型的数组 X,设置 X[3] 为需要找到的特定字符串:

image.png
2.运行下面代码,使用 find 找到数组 X 中的特定字符对应的索引值:

# warningFlg = find(X .== "Flg") #由于数据类型不匹配会导致报错
warningFlg = findall(t -> !ismissing(t) && t == "Flg", X) #对 X 进行 ismissing 判断再 find

3.可以看到此时运行了正确的结果,即索引“3”:

image.png

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境
科学计算

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天