You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确使用sweep函数比较两个dataframe首行并满足指定判断规则

问题定位

  1. 判断条件不符合需求:你当前使用的x <= y逻辑,会在x等于y时返回TRUE,和你要求的「x大于、等于y时都返回FALSE」的规则冲突。
  2. sweep维度参数错误:你指定的MARGIN=1是按行循环匹配统计量,对于两个同列数的单行数据,应该设置MARGIN=2按列对应匹配。

修正代码

调整sweep参数和逻辑

sweep(as.matrix(gap_size_uncut[1,]), 2, as.matrix(NA_Count[1,]),
      FUN = function(x,y) x < y, 
      check.margin = FALSE)

更简洁的替代方案

两个单行数据长度完全一致,不需要调用sweep,直接做向量运算即可:

# 返回带列名的矩阵结果
matrix(gap_size_uncut[1,] < NA_Count[1,], nrow = 1, dimnames = list(NULL, colvec))

结果验证

修正后返回结果为:
FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
完全符合「仅x小于y时返回TRUE,大于、等于均返回FALSE」的需求。

内容的提问来源于stack exchange,提问作者LGe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:24:02