使用宏对数据集中的列按组求和

2024-01-29

我有一个数据集,如下所示:

 Month   Cost_Center      Account    Actual    Annual_Budget
 June     53410           Postage       13      234
 June     53420           Postage       0       432
 June     53430           Postage       48      643
 June     53440           Postage       0       917
 June     53710           Postage       92      662
 June     53410           Phone         73      267
 June     53420           Phone         103     669
 June     53430           Phone         90      763
 ...

我想首先分别对“实际”和“年度”列求和,然后创建一个变量,在其中标记全年推断的实际值是否大于“年度”列。

我有以下代码:

 Data Test; 
 set Combined;
 %All_CC; /*MACRO TO INCLUDE ALL COST CENTERS*/
 %Total_Other_Expenses;/*MACRO TO INCLUDE SPECIFIC Account Descriptions*/
 Sum_Actual = sum(Actual);
 Sum_Annual = sum(Annual_Budget);
 Run_Rate = Sum_Actual*12;
 if Run_Rate > Sum_Annual then Over_Budget_Alarm = 1;
 run; 

但是,当我运行此代码时,它不会按组求和,例如,这是我得到的输出:

 Account_Description    Sum_Actual Sum_Annual   Run_Rate  Over_Budget_Alarm
      Postage             13      234             146           
      Postage             0       432              0 
      Postage             48      643             963            1
      Postage             0       917             0
      Postage             92      662             634            1

我正在寻找将实际和年度的所有“邮资”相加的输出,只留下一行数据。


  1. 使用PROC MEANS汇总数据
  2. 使用数据步骤和 IF/THEN 语句来创建标志。

    proc means data=have N SUM NWAY STACKODS;
       class account;
       var amount annual_budget;
       ods output summary = summary_stats1;
       output out = summary_stats2 N = SUM= / AUTONAME;
    run;
    
    data want;
      set summary_stats;
      if sum_actual > sum_annual_budget then flag=1; 
      else flag=0;
    run;
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用宏对数据集中的列按组求和 的相关文章

  • 有没有办法让 SAS 在第一次警告或错误时停止?

    SAS 喜欢在出现警告和错误后继续处理 因此我经常需要向后滚动日志中的页面以查找问题 有没有更好的办法 我希望它在出现第一个错误或警告时立即停止 以便我可以修复它并重试 之前建议使用 ERRORS 1 选项 但这只会阻止错误消息写入日志 我
  • SAS 无效“闰年”日期问题 yymmdd8

    我正在阅读一些原始数据 其中有几个错误的日期 具体来说 有人在非闰年键入了 2 月 29 日 例如 data null input test yymmdd8 format test date9 cards 20270229 run 客户希望
  • 何时在 SAS 中使用 IF 或 %IF

    我是 SAS 新手 很难弄清楚何时应使用简单的 If Then else 以及何时应使用 IF THEN ELSE 作为示例代码如下 let inFile scan sysparm 1 macro read data infile data
  • SAS LOOP - 从具有值的记录创建列

    假设我有随机诊断代码 例如 001 v58 142 如何从记录中的代码构造列 Input id found code 1 1 001 2 0 v58 3 1 v58 4 1 003 5 0 v58 15000 0 v58 Output id
  • 如何使用 proc http 和 http_tokenauth 在后台调用 SAS STP

    我正在尝试使用选项后台通过 proc http 从 SAS 调用存储进程 STP 以确保我的主进程不会等待 STP 完成 我确实使用以下代码 filename resp
  • 删除SAS中所有观测值都不包含特定值的组

    我想删除其观察值中没有 NUM 14 的整个组 所以就像这样 原始数据 ID NUM 1 14 1 12 1 10 2 13 2 11 2 10 3 14 3 10 由于 ID 2 中都不包含 NUM 14 因此我删除了组 2 它应该看起来
  • 如何根据 SAS Enterprise Guide / PROC SQL 中具有相同前缀的列中的值创建具有适当前缀的 2 个新列?

    我在 SAS Enterprise Guide 中有如下表 ID COUNT COL A COUNT COL B SUM COL A SUM COL B 111 10 10 320 120 222 15 80 500 500 333 1 5
  • SAS HashTable 中由 hashexp 指定的表大小到底是多少?

    我想对 SAS 哈希表中存储桶的定义进行一些澄清 问题正是关于hashexp范围 根据 SAS DOC 的说法 hashexp is 哈希对象的内表大小 其中哈希表的大小为2n HASHEXP 的值用作 2 的指数来创建哈希表大小 例如 H
  • 从 .Net 中的 SAS 数据源读取数据

    我被要求在 ASP Net 应用程序中从 SAS 读取一些数据 我有 Windows 窗体应用程序的工作代码 然而相同的代码doesn t在 ASP Net 中工作 但我可以尝试一下 具有相同引用的干净项目始终会失败 这是我所得到的连接 S
  • 增加 sas 内存/memsize

    您好 有一个包含大约 6000 个观测值和 250 个变量的数据集 我正在尝试使用 proc mix 在 sas 中运行混合模型 但我不断收到 错误 由于内存不足 sas 系统停止处理此步骤 我尝试了康奈尔大学的方法 http www ci
  • SAS 和 Excel 中百分位数的不同结果

    我正在尝试获取 SAS 中的百分位数 我在 Excel 中得到了百分位数 我期望在 SAS 中也得到相同的结果 但是当我在 SAS 中得到百分位数时 它与 excel 中的不同 我正在使用下面的示例数据 1 2 3 4 5 6 7 8 9
  • Proc sql:基于回顾期的新客户和继续客户

    我有以下数据 wei 01feb2018 car wei 02feb2018 car wei 02mar2019 bike carlin 01feb2018 car carlin 05feb2018 bike carlin 07mar201
  • XML 映射的 PATH 元素中的 POSITION() 函数在 XML 映射器中有效,但在 SAS 代码中无效

    我正在尝试将 xml 文件导入到 SAS Xml 文件是 Google 对地址请求的 地理响应 这是它的片段
  • 在R中导入SAS cport文件

    我试图通过一些分析找出一种在 R 中导入 SAS cport 文件的方法 有人可以帮助我如何完成这项工作吗 我不想先使用 SAS 将其转换为 csv 然后再导入到 R 中 我尝试用谷歌搜索但无法找到合适的解决方案 Thanks None
  • sas7bdat 变量名称中带有空格

    我收到了几个扩展名为 sas7bdat 的 SAS 数据集文件 我在 Windows 上使用 SAS 9 3 这些文件的创建者显然使用了不同的环境和 或软件 许多文件的 var 名称包含空格和其他无效字符 甚至运行一个proc conten
  • SAS 宏日期问题

    我对 SAS 完全陌生 我的数据库包含 2000 2011 年的数据 我的数据集列表对于每个数据集都是这样的date TP 2004012 for 26JAN2004 TP 20040127 for 27JAN2004 TP 2004012
  • SAS 全球日期比较

    我正在尝试进行日期比较 但没有得到正确的结果 有谁知道发生了什么事吗 macro ttt let check start 28APR2014 if check start d lt 25may2014 d then let true 1 e
  • SAS,按组求和

    我想通过var1计算总和 你能用两种方法来计算吗 SQL 和数据步骤使用 if first var1 data have input var1 var2 var3 datalines 1 a 3 1 a 4 1 a 3 2 b 5 2 b
  • SAS合并多个表

    我想知道合并多个表的最佳方法是什么 我在所有表中都有唯一的标识符 我应该在对表进行排序后一步加入所有表 还是应该逐步进行一一表合并 这有关系吗 您可以一步进行多次合并 然而 这并不是最安全的方法 如果您的数据可能存在缺陷 最好逐步执行此操作
  • 如何在SAS中对逻辑回归进行似然比检验?

    我想使用 SAS 在逻辑回归中执行标准似然比检验 我将拥有一个完整的逻辑模型 其中包含所有变量 名为 A 和一个嵌套逻辑模型 B 通过从 A 中删除一个变量而派生 如果我想测试该退出变量是否显着 我将对模型 A 和 B 执行似然比测试 是否

随机推荐

  • Heroku 麻烦 - 卸载/重新安装 heroku toolbelt ubuntu

    我正在 Amazon Web Services 上运行一个 Ubuntu 实例 用于开发 Ruby on Rails 应用程序 用于测试运行本地 Rails 服务器 并将该应用程序推送到 Heroku 进行部署 这个设置对我来说一直没有问题
  • 如何在 SelectedIndexChanged 事件之前检测 TabControl 中选项卡页的更改?

    我目前确定通过以下方式单击了选项卡控件的哪个页面SelectedIndexChanged event 我想检测before出于验证目的 所选索引实际上会发生变化 例如 用户单击了他们正在查看的标签页以外的标签页 如果未保存表单数据 则会出现
  • 无法用新值覆盖 stringstream 变量

    string whatTime int seconds string h m s ans stringstream ss ss lt lt seconds 3600 seconds 3600 seconds 3600 ss gt gt h
  • 在c#中获取套接字对象的流

    我有一个通过 TCP IP 进行通信的客户端 服务器应用程序 I use System Net Sockets Socket用于通过 TCP 进行异步通信的类型对象 基本上我打开连接发送 接收数据并关闭连接 而我的实现是基于Socket类型
  • Google Chrome 扩展程序:如何确定用户是否已登录 Chrome 浏览器?

    作为我正在构建的 Google Chrome 扩展程序的一部分 我需要能够在扩展程序启用时判断用户是否已登录 Google Chrome 浏览器 我怎样才能做到这一点 请注意 使用 OAuth2 因此 the chrome identity
  • 检查字符串是否以某种模式结尾

    如果我有一个像这样的字符串 This is a great place too work or This is a great place too work 我的程序应该告诉我这个句子是有效的并且它有 作用 如果我有 This is a g
  • Microsoft Chart 堆叠列与非堆叠列分组

    我希望显示 4 组的数据 每组有 1 个堆叠列和 1 个非堆叠列 这是我所追求的模型 获得四个组很容易 这给了我我想要的 Series series chart Series Add Budget series ChartType Seri
  • Team Foundation Server 和 Team Services 之间的区别

    Microsoft Team Foundation Server 和 Microsoft Team Services 之间有什么区别 Team Services 是否也用于持续集成 它可以与自托管 git 服务一起使用吗 希望这不是偏离主题
  • 单独线程中的无限循环

    我有一些数据库优化例程需要定期执行 我目前正在使用 TTimer 但主 VCL 冻结并且非常 hacky 我想知道最好的方法是什么 以降低 cpu 消耗并执行这些例程 我认为将例程放在具有低线程优先级的单独线程中是最好的方法 有任何想法吗
  • Rabbitmq消息到达时间戳

    有没有办法从消费者那里获取消息放入队列时的时间戳 不是当它发布的时候 而是当它真正进入队列的时候 不 没有办法解决这个问题 除非 正如您自己所说 您为此编写了一个插件 AMQP 中没有任何内容规格 http www amqp org sit
  • Android 应用程序干净的架构:数据层应该有自己的模型类吗?

    开发 Android 应用程序并尝试遵循干净的架构准则时 最好的方法是什么 但不是非常严格 因为这对于较小的项目可能有点过分 就我而言 我不确定哪种方法是最好的 如果有最好的方法 关于 数据层数据层是否应该在其自己的模型类上操作 或者是否可
  • 对 foreach 中的数组中的项目进行分组和求和

    我正在循环访问两个存储过程的结果集 根据另一个存储过程中的字段获取一个存储过程中的结果 包含结果集的两个数组是 customers and subcustomers foreach customers as customer foreach
  • 如何在MVC3中的Html beginform中发送javascript var

    我正在尝试使用 html beginform 将 JS 变量发送到控制器操作 例如 using Html BeginForm Index Contrl1 new SPName myJSVarcomeshere FormMethod Post
  • 即使与 libole32 链接,外部库中也未定义 OLE 引用

    使用 MINGW 我尝试将我的 C 代码与执行一些 OLE 操作的静态 C 库链接 mingw32 gcc main o resources o o mbcom exe L Lib Iup liup liupole lole32 lcomc
  • ggplot2:从包含geom_histogram的绘图对象读取最大条形高度

    像这样上一张海报 https stackoverflow com questions 7611691 relative positioning of geom text in ggplot2 我也在用geom text在 gglot2 中注
  • 远程 emacs 客户端连接,但不在终端中创建新框架

    我以 TCP 模式配置并启动了 emacs 服务器 Added setq server host 10 16 184 33 and setq server use tcp t 到 emacs ran emacs daemon 在同一主机上
  • 在 Django 模板中调用 Python 函数

    在 django 模板内 我尝试对其中一个模板变量调用 split 函数 然后获取最后一个元素 所以我做了如下操作 newsletter NewsletterPath split 1 不幸的是 它不喜欢分裂 有些人可能建议我在视图中进行拆分
  • 使用 NiFi 更新 CSV 内字段中的值

    我想实现一个简单的用例 使用 NiFi 将 CSV 内字段中的多个字符串 文本值更新为整数值 例如 我的 CSV 文件如下所示 输入 CSV 文件 字段 1 字段 2 美国 苹果 美国 苹果 印度 葡萄 中国城 奥兰治 澳大利亚民族 桃子
  • 如何让 QLabel 扩展到全宽?

    我想要一个QLabel无论内容如何 都扩展到容器的整个宽度 我想要这个 因为我动态设置文本并稍后添加小部件 这导致它切断部分文本 Widget Widget QWidget parent QWidget parent this gt set
  • 使用宏对数据集中的列按组求和

    我有一个数据集 如下所示 Month Cost Center Account Actual Annual Budget June 53410 Postage 13 234 June 53420 Postage 0 432 June 5343