比较具有扫描功能的行 - 如何正确执行?

compare rows with sweep function - how to do it properly?

只是尝试使用“扫描”比较两个数据帧的第一行。不幸的是,函数 returns 只有 FALSE,如果满足条件,则 x 大于 y。如果 x 等于 y,我想要相同的 FALSE 输出。不幸的是,我的尝试没有奏效,我不明白为什么。如果 x 等于 y,仍然存在 TRUE,但应该存在 FALSE。请帮助:

colvec <- c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m")
gap_size_uncut <-  as.data.frame(rbind(c(6,1,5,1,1,1,4,5,26,3,35,23,3)))
NA_Count       <-  as.data.frame(rbind(c(3,6,5,7,1,3,4,6,1,0,1,1,3)))
colnames(gap_size_uncut) <- colvec
colnames(NA_Count) <- colvec

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

sweepMARGIN = 2 结合使用。

sweep(gap_size_uncut[1,], 2, NA_Count[1,], `<=`)

#      a    b    c    d    e    f    g    h     i     j     k     l    m
#1 FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE

如果尺寸相同,您可以直接比较两个数据框而无需 sweep

gap_size_uncut <= NA_Count

#         a    b    c    d    e    f    g    h     i     j     k     l    m
#[1,] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE