Julia中如何对missing与数值求和并返回数值而非missing
Julia 1.3.0 缺失值加法跳过缺失的实现方法
可以实现,无需额外安装第三方包,Julia 1.3.0 内置的coalesce函数即可满足需求。
单值运算场景
要让missing + 1返回1而非missing,只需用coalesce将缺失值替换为0后再运算:
coalesce(missing, 0) + 1 # 输出结果为 1
coalesce的作用是返回传入参数中第一个非缺失的值,上述写法遇到非missing的数值时会直接返回原值,不会影响正常数值的计算。
两列数组批量求和、保留原行数场景
直接对两列数组做向量化的coalesce替换后再相加即可,输出结果的长度和原数组完全一致:
- 示例代码:假设两列数据分别为
col1和col2
# 随机生成带缺失的示例数组 col1 = [1, missing, 3, missing, 5] col2 = [missing, 2, missing, 4, 5] # 按行求和,跳过缺失值 sum_result = coalesce.(col1, 0) .+ coalesce.(col2, 0)
上述示例的输出结果为[1, 2, 3, 4, 10],和原数组行数完全一致,缺失值位置会被自动视为0参与计算。
自定义通用运算规则(可选)
如果需要频繁使用跳过缺失的加法,可以自定义专用函数:
skipmiss_add(x, y) = coalesce(x, 0) + coalesce(y, 0) # 向量化调用 sum_result = skipmiss_add.(col1, col2)
内容的提问来源于stack exchange,提问作者ana_gg
相关产品推荐
相关产品推荐

