Assert列的组合是唯一的(使用`assertr`)

gcuhipw9  于 2023-04-09  发布在  其他
关注(0)|答案(1)|浏览(76)

我正在寻找一种“整洁”和简洁的方法,以确保列的组合在使用assertr的tibble中是唯一的。
到目前为止,这是我能想到的最好的:

PasteRows <- function(df) {
  apply(df, 1, paste, collapse = '')
}

tib <- tibble(a = c(1, 1, 3), b = c('a', 'b', 'b'))

tib %>%
  assert_rows(PasteRows, is_uniq, a, b)

...但我首先必须定义PasteRows。此外,我不确定apply是否有性能损失,因为它将tibble转换为矩阵。
我该如何改善和缩短这一点?

rqcrx0a6

rqcrx0a61#

assertr具有用于此目的的函数col_concat()

library(assertr)
library(tibble)

tib <- tibble(a = c(1, 1, 2), b = c('a', 'b', 'b'))

tib %>%
  assert_rows(col_concat, is_uniq, a, b)

相关问题