当前位置: 首页 > 知识库问答 >
问题:

使用RODBC包计数null和missing值(以及在两者之间进行区分)时遇到的问题

谢弘阔
2023-03-14

我正在为一个由5个表和近10年的数据组成的SQL数据库创建一个缺失矩阵。我已经建立了ODBC连接,并且正在使用R中的RODBC包作为我的工作环境。我试图编写一个函数,该函数将输出每个表每年的行数、给定表在给定年份的空值(不存在的值)的计数和百分比以及给定表的缺失值(跳过的问题/未回答的问题)的计数和百分比。我正在使用下面的代码,试图让它在一个变量上工作,然后一旦它工作了,就把它变成一个函数。但是,当我运行这段代码(见下文)时,它似乎不起作用,我认为问题在于为null字符分配整数值,na。当我试图在函数中列出变量时,我得到了这样的消息:

test1<-sqlQuery(通道,“select

              [EVENT_YEAR] AS 'YEAR', 
              COUNT(*) AS 'TOTAL',
              SUM(CASE WHEN MOTHER_EDUCATION_TRENDABLE = 'NA' THEN 1 ELSE 0 END) AS 'NULL_VAL',
              SUM(CASE WHEN MOTHER_EDUCATION_TRENDABLE = -1 THEN 1 ELSE 0 END) AS 'MISS_VAL'

              from [GA_CMH].[dbo].[BIRTHS]

              GROUP BY [EVENT_YEAR]
              ORDER BY [EVENT_YEAR]")

              test1$nullpct<-with(test1, NULL_VAL/TOTAL)
              test1$misspct<-with(test1, MISS_VAL/TOTAL)

共有1个答案

何骞尧
2023-03-14

我认为列MOTHER_EDUCATION_TRENDABLE的数据类型是整数,如果是,请尝试:


    select
    [EVENT_YEAR] AS 'YEAR',
    COUNT(*) AS 'TOTAL',
    SUM(CASE WHEN MOTHER_EDUCATION_TRENDABLE IS NULL THEN 1 ELSE 0 END) AS 'NULL_VAL', 
    SUM(CASE WHEN MOTHER_EDUCATION_TRENDABLE = -1 THEN 1 ELSE 0 END) AS 'MISS_VAL'
    from [GA_CMH].[dbo].[BIRTHS]
    GROUP BY [EVENT_YEAR]
    ORDER BY [EVENT_YEAR]  
 类似资料:
  • 我正在为一个由5个表和近10年的数据组成的SQL数据库创建一个缺失矩阵。我已经建立了ODBC连接,并且正在使用R中的RODBC包作为我的工作环境。我试图编写一个函数,该函数将输出每个表每年的行数、给定表在给定年份的空值(不存在的值)的计数和百分比以及给定表的缺失值(跳过的问题/未回答的问题)的计数和百分比。我写了下面的代码,试图让它在一个变量上工作,然后在它工作后将它变成一个函数。但是,当我运行这

  • 问题内容: 我有以下文件: 其中构建以下内容: (一个python 应用程序): (针对api 的测试应用程序): 诚然,关于Docker网络,我是一个新手,但我正在尝试让该应用程序与Docker 通信。例如,具有以下端点:。我尝试了以下网址的各种排列: 。他们都没有为我工作。 我一直在清理互联网,却找不到真正的解决方案。 问题答案: React应用程序在最终用户的浏览器中运行,后者根本不知道这种

  • 我尝试了一些具有分析功能的示例,并创建了一个sql fiddle来理解分区上的count distinct by Clause,这就是我的SQLFiddle。 如果查看结果集,我会认为第三行的valcount为1,但它是2,不确定为什么会这样。

  • createOrReplace eTempView和as函数别名火花sql查询使用的区别是什么? 我试图理解这两种方法之间的区别。

  • 问题内容: 我有一个带有StartDate列的表,我想计算两个连续记录之间的时间差。 谢谢。 @ Mark Byers和@ Yahia,我将请求表作为requestId,startdate 我想知道requestid 1和2、2和3、3和4等之间的时差是多少。我知道我需要在表上进行自我连接,但是我在子句上没有得到正确的支持。 问题答案: 要实现您的要求,请尝试以下操作(从OP编辑后进行更新): 如

  • 我在计算两次约会的时差。。 上面的方法很有效,但它可以提供几天、几小时和几秒钟的时间。我希望它也能告诉我月份。但问题是每个月都有不同的天数,所以我如何才能找到月数呢?