我希望在众多系统生成的表上执行数据质量。其中一项检查是查看字符列中的所有值是否都只是数字。我希望知道此检查为真的数字列。以下表为例,我想确定两列(代码和年龄)是仅包含数值的字符列。
表结构
列名 | 数据类型 |
---|---|
姓名 | 特点 |
类型 | 特点 |
代码 | 特点 |
会员ID | 整数 |
采集日期 | 日期 |
年龄 | 特点 |
高度 | 双倍的 |
表值
列名 | 列值 |
---|---|
姓名 | 只有字母 |
类型 | 只有字母 |
代码 | 只有数字 |
会员ID | 只有数字 |
采集日期 | 只有日期 |
年龄 | 只有数字 |
高度 | 只有数字 |
我在思考执行此操作所需的逻辑时遇到问题。到目前为止我所做的是:
仅选择字符数据类型的列
df %>%
dplyr::select_if(is.character)
验证列中的所有值都是数字(或 null,这很好)
sum(varhandle::check.numeric(df$code)) == nrow(df)
我希望构建一个在所有列中执行此操作的函数,并将检查为真的数字存储到列中(即 dplyr::mutate),但我不确定如何构造它;它是交叉,应用还是其他东西。或者是否有任何现有的功能/包可以执行此任务?任何帮助表示赞赏。