有效连接多个 sas 数据集

2024-02-05

我有超过 200k 个具有相同变量(n

%macro catDat(name, nbr) ;
    /*call in new dataset */
    data new ;
    set libin.&name ;
    run ;

    /* reorder names */
    proc sql noprint;
    create table new as 
    select var1, var2, var3
    from new;
    quit;

    %if &nbr = 1 %then %do ;
        data master;
        set new;
        run;
    %end; 
    %if &nbr > 1 %then %do ;
        data master;
        set master new ;
        run;
    %end ;
%mend;

/* concatenate datasets */
data runthis ;
set datasetNames ;
call execute('%catdat('||datasetname||','||_n_||')');
run;

已解决:请参阅下面鲍勃的评论。


尝试使用PROC APPEND而不是你的“新”数据集;那会快得多:

%macro DOIT;

proc sql noprint;
   select count(*) into : num_recs
   from datasetNames;
quit;

%do i=1 %to &num_recs;

data _null_;
  i = &i;
  set datasetNames point=i;
  call symput('ds_name',datasetname);
  stop;
run; /* UPDATE:  added this line */

%if &i = 1 %then %do;
/* Initialize MASTER with variables in the order you wish */
data master(keep=var1 var2 var3);
   retain var1 var2 var3;
   set libin.&ds_name;
   stop;
run;
%end;

proc append base=master data=libin.&ds_name(keep=var1 var2 var3);
run;

%end;

%mend DOIT;

PROC APPEND会将每个数据集添加到您的新“主数据集”中,而无需像您现在所做的那样每次都重建它。 这也避免了使用CALL EXECUTE,消除您遇到的内存问题(由于在执行堆栈中生成过多代码而引起)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有效连接多个 sas 数据集 的相关文章

  • 当存在变量空间分隔列时,在 python (numpy) 中加载数据集

    我有一个包含数字数据的大数据集 并且在其某些行中存在分隔列的可变空间 例如 4 5 6 7 8 9 2 3 4 当我使用这条线时 dataset numpy loadtxt dataset txt delimiter 我收到此错误 Valu
  • 公式中的行根据另一个单元格中的值更改

    我正在尝试在 Excel 中创建一个段落 我在另一张表中列出了我想要从中提取的值 这是我正在使用的代码 CONCATENATE Dear Linkage Log I6 Blah Blah Blah 我希望我的列进行相同的更改 但我试图让 6
  • 数据集是否应该在企业级 Web 应用程序中使用?

    因此 我之前的一个项目中有一位架构师反对数据集 他讨厌它们 并说它们在网络应用程序中没有地位 特别是在拥有大量流量的网络应用程序中 我注意到在我接管的许多代码实例中数据集的使用相当频繁 他们真的那么糟糕 性能杀手吗 我是否应该考虑删除大量使
  • 连接字符串:两个字符串列表的“乘法”[重复]

    这个问题在这里已经有答案了 对于字符串列表 将乘法运算定义为连接 l1 aa bb cc l2 11 22 l3 l1 op l2 预期输出 l3 aa11 aa22 bb11 bb22 cc11 cc22 我们可以简单地使用 for l
  • 合并 Pandas Dataframe:如何添加列和替换值

    我有一个数据帧 df1 并想要合并其他 许多 数据帧 df2 以便 合并发生在匹配的 多 索引上 如果缺失 将创建新列 如果列已存在 则替换值 正确的 pandas 操作是什么以及使用什么参数 我查看了 concat join merge
  • 使用 SAS 导出到 Excel

    假设我有 2 个 SAS 数据集 test1 sas 和 Test2 sas 现在我想将这2个数据集导出到Excel中 其中Excel文件Sheet1中将有test1 sas数据 Sheet2中将有test2 sas数据 怎么做 从 开始这
  • 使用 ## 和 __LINE__ 创建 C 宏(与定位宏的标记串联)

    我想创建一个 C 宏来创建一个基于名称的函数 在行号上 我想我可以做类似的事情 真正的函数在大括号内有语句 define UNIQUE static void Unique LINE void 我希望能扩展到类似的内容 static voi
  • 如何在 Python 中连接两个列表?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 如何在 Python 中连接两个列表 Example listone 1 2 3 lis
  • mysql 在 sum() 函数上使用 concat,例如 concat(sum(col1),"%")

    我正在尝试合并多个查询 但其中一个查询使用 sum 当我尝试在此列上应用 concat 时 我得到不需要的 blob 结果 我如何在聚合列上应用 concat 和 union 我期待这个结果 SELECT row 1 col1 UNION
  • 输出带有SAS表测试结果的表的宏

    Problem 我不是一个非常有经验的 SAS 用户 但不幸的是我可以访问数据的实验室仅限于 SAS 另外 我目前无法访问这些数据 因为它只能在实验室中使用 因此我创建了模拟数据进行测试 我需要创建一个宏来获取值和尺寸PROC MEANS表
  • sas 宏 & 符号

    let test one let one two put test put test put test put test put test 出色地 我完全被这些 符号打败了 我不明白为什么他们在宏变量之前需要这么多 符号 有什么技巧可以掌握
  • Python 中的 Unix cat 函数 (cat * > merged.txt)? [复制]

    这个问题在这里已经有答案了 一旦建立了目录 有没有办法在Python中使用Unix中的cat函数或类似的函数 我想将 files 1 3 合并到 merged txt 我通常会在 Unix 中找到该目录 然后运行 cat gt merged
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 使用 Proc sql 和 Teradata 在 SAS 中编写高效查询

    编辑 这是一组更完整的代码 它准确地显示了下面的答案所发生的情况 libname output data files jeff let DateStart 01Jan2013 d let DateEnd 01Jun2013 d proc s
  • PHP mysql 选择连接

    我有这个功能 以某种形式显示自动建议 function searchbyId params input strtolower params input len strlen input limit isset params limit in
  • SAS 随机采样

    在 SAS 中 我创建了一个程序 该程序将从数据集中随机获取 50 个观测值 并计算观测值的平均值 data subset drop i samplesize samplesize 50 obsleft totobs do i 1 to s
  • 从字节数组中删除多余的“空”字符并转换为字符串[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我已经为此工作了一段时间 但在这里没
  • 具有相同引用的字符串连接? [复制]

    这个问题在这里已经有答案了 这是我的代码 我现在对字符串池和 通过此输出进行堆存储 public class String1 public static void main String args TODO Auto generated m
  • 连接两个 Func 委托

    我有这个课程 public class Order int OrderId get set string CustomerName get set 我也声明了以下变量 Func
  • 如果出现错误,SAS 会发送电子邮件

    是否有任何代码 宏可以合并到我的 SAS 程序中 一旦我的 SAS 代码在运行时发生错误 它就会向我发送电子邮件 另外 这封电子邮件是否可能包含所发生的错误 是的 又不是 这是可能的 但没有好的方法来做到这一点 您必须在每个过程之后检查是否

随机推荐

  • 反应式扩展超时不会停止序列?

    我正在尝试做一个IObservable
  • 为我的数据库 mysql 中的每一行调用 php 脚本

    如果这是一个愚蠢的问题 我很抱歉 但我现在不知道如何为表中的每一行调用 php 脚本 我正在使用mysql 我以后会使用PDO 我知道它更好 这是我的 选择 页面 我在其中选择所需的行
  • Printer_open() 打印 html 输出

    With printer open php 中的函数 我可以打印我保存的字符串 content变量 并且能够从文件打印 printer Pserver php net printername handler printer open pri
  • 插入缺失的日期行并在新行中插入旧值 PySpark

    我有一个 DataFrame 其中包含一个人 一个体重和时间戳 如下所示 person timestamp weight 1 2019 12 02 14 54 17 49 94 1 2019 12 03 08 58 39 50 49 1 2
  • 如何在 ASP.net 控制器操作中访问整个查询字符串

    我知道如果我有一个像 XController Action id 1 这样的 url 和一个操作方法 void Action int id id 参数将自动从查询字符串中读取 但是 当我事先不知道所有参数的名称时 如何访问整个查询字符串 例
  • 哪个版本的 Xcode 支持 iOS 12.2?

    当我在运行 iOS 12 2 的 iPhone 7 上运行我自己开发的软件时 弹出了一个警报 这款 iPhone 7 型号 1660 1778 1779 1780 运行的是 iOS 12 2 16E5201e 此版本的 Xcode 可能不支
  • SQL Server 用最后一个值替换 NULL [重复]

    这个问题在这里已经有答案了 我想找到一种方法用最后一个非 NULL 值替换 NULL 值 我有一张像这样的桌子 Date Cost 2017 01 01 18 6046511 2017 01 03 22 9787234 2017 01 03
  • oracle 限制为 1000 / hibernate

    Oracle 知道 1000 个元素的限制where a in 条款 当 Hibernate 与 Oracle 结合使用时 是否也存在此限制 Hibernate 中仍然存在此数据库限制 如果您确实需要在 in 子句中包含超过 1000 个项
  • 关于模板专业化和继承的良好实践

    模板专业化不考虑继承层次结构 例如 如果我专门设计一个模板Base并实例化它Derived 不会选择专业 参见下面的代码 1 这可能是一个主要障碍 因为它有时会导致违反里氏替换原则 例如 在工作时这个问题 https stackoverfl
  • python:安装anaconda后,如何导入pandas

    我已经安装了蟒蛇 现在当我尝试跑步时 import pandas as pd 我收到以下错误 Traceback most recent call last File
  • Python 中的词法分析、标记化和解析资源

    人们可以向我指出有关使用 Python 进行词法分析 解析和标记化的资源吗 我正在对一个开源项目进行一些黑客攻击 hotwire http www hotwire shell org 并想对代码进行一些更改lexes http code g
  • Poco C++ 库和 Win32 GUI 集成

    有人曾经在 Win32 GUI 应用程序中使用过 Poco C 库吗 在 PocoFoundation 库中 UnWindows h 头文件中的许多 undef 禁止使用重要的 API 如 CreateWindows LoadLibrary
  • 从tensorflow.js神经网络获取权重

    我有这个顺序模型 this model tf sequential this model add tf layers dense units 16 useBias true inputDim 7 input this model add t
  • 使用 XMLInputFormat 在 hadoop 中解析 xml 时不执行我的 hadoop 映射器类

    我是 hadoop 新手 使用 Hadoop 2 6 0 版本并尝试解析复杂的 XML 经过一段时间的搜索 我了解到 对于 XML 解析 我们需要编写自定义的 InputFormat 即 mahout 的 XMLInputFormat 我也
  • 如何将图像拖放到 HTML5 Canvas 上?

    我修改了一个页面 可以将图像拖放到画布上 它可以做我想要的一切 除了一个 我尝试了多种方法 包括脚本 例如 Kinetic 和 Raphael 我仍然认为这可能是可行的方法 但已经死了 一旦图像被放下 我就无法将其在画布上拖动到新位置 fu
  • 使用 PDFBox 从字符串中删除非法字符

    当我尝试向 PDF 中写入非法字符时 我显然遇到了异常 例如 contentStream showText some illegal characters java lang IllegalArgumentException U 000A
  • Python pandas 相当于替换

    在R中 有一个相当有用的replace功能 本质上 它在数据帧的给定列中进行有条件的重新分配 它可以这样使用 replace df column df column 1 Type 1 在 pandas 中实现相同目标的好方法是什么 我应该使
  • 仅通过命令行在 Windows 上运行 CMake 生成的 INSTALL.vcxproj?

    我有一个 C 程序 正在尝试在 AppVeyor 上构建和部署 因此 我没有可用的 GUI 工具 我的项目的依赖项均使用 CMake 作为其构建系统 并且 CMake 默认情况下 在 Windows 上生成 Visual Studio 项目
  • Java - 同时将两个表达式分配给一个变量

    我刚刚学完 Java 第一年 我一直在查看 JDK 源代码作为练习 我遇到了以前从未遇到过的情况 即在同一个语句中对同一个变量进行了两次赋值 e g variable 表达 表达 这里究竟发生了什么 这是一个相当普遍的事情吗 双重作业的目的
  • 有效连接多个 sas 数据集

    我有超过 200k 个具有相同变量 n macro catDat name nbr call in new dataset data new set libin name run reorder names proc sql noprint