北欧航空公司。变量是否在数据步骤的每次迭代中都设置为缺失?

2024-01-04

我一直认为数据步骤的每次迭代都将变量设置为缺失。然而,在下面的代码中,变量看起来像是保留了最开始获取的值。我不明白为什么会发生这种情况?

data one;
input x $ y;
datalines;
a 10
a 13
a 14
b 9
;
run;

data two;
input z;
datalines;
45
;
run;

data test;
if _n_ = 1 then set two; /* when _n_=2 the PDV assigns missing values, right ? */
set one;
run;
proc print;
run; 

结果是

   z      x     y  
   45     a    10
   45     a    13
   45     a    14
   45     b     9

我本来期待得到这个

   z      x     y  
   45     a    10
   .      a    13
   .      a    14
   .      b     9

SAS 确实not重置 PDV 中 SET、MERGE、MODIFY 或 UPDATE 语句的值。由于您使用的是 SET 语句,因此 SAS 不会重置它。

if _n_ = 1 then set two;

http://support.sas.com/documentation/cdl/en/lrcon/65287/HTML/default/viewer.htm#p08a4x7h9mkwqvn16jg3xqwfxful.htm http://support.sas.com/documentation/cdl/en/lrcon/65287/HTML/default/viewer.htm#p08a4x7h9mkwqvn16jg3xqwfxful.htm

Read - 执行阶段- 指针5

http://support.sas.com/documentation/cdl/en/basess/58133/HTML/default/viewer.htm#a001290590.htm http://support.sas.com/documentation/cdl/en/basess/58133/HTML/default/viewer.htm#a001290590.htm

http://support.sas.com/documentation/cdl/en/lrcon/62955/HTML/default/viewer.htm#a000961108.htm http://support.sas.com/documentation/cdl/en/lrcon/62955/HTML/default/viewer.htm#a000961108.htm

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

北欧航空公司。变量是否在数据步骤的每次迭代中都设置为缺失? 的相关文章

  • 如何在 SAS University Edition 中直接导入 PC 上的文件?

    我正在使用 SAS University Edition 我必须将文件导入 SAS 软件 我尝试过使用 infile 和 proc import 语句 但直接从 PC 访问文件时这些语句不起作用 有没有办法直接从 PC 访问 SAS UE
  • SAS PRX 请提取子字符串

    我正在尝试使用 SAS PRX 函数从我的数据集中提取子字符串 但它只返回精确的匹配项 而我需要它更加灵活并提取匹配各种条件的匹配项 我已将我的数据复制到下面 如您所见 我的数据中的变量之一是 brandmodel 其中包含特定相机的品牌名
  • 使用 PROC GLM “自动”计算参数估计值的线性组合

    背景 我有一个分类变量 X 有四个级别 我将其作为单独的虚拟变量 因此 共有三个虚拟变量 分别代表 x 1 x 2 x 3 x 0 是基线 问题 问题 我希望能够计算这些虚拟变量的线性组合 即使用 SAS 作为计算器 的值 例如 2 B1
  • 如何在一个proc打印语句中打印多个数据集?

    我有一个 sas 查询 如果我创建了 3 个数据集 可以说命名为ds1 ds2 ds3 现在 我想在一个 proc print 语句下打印所有这些 那么我们该怎么做呢 就像 我想要这样的东西 proc print data work ds1
  • 将回归结果输出到 R 中的数据帧中

    我想知道是否有任何命令可以将 lm 模型的结果输出到 R 中的数据帧中 就像 SAS 中的 outest 一样 有任何想法吗 我正在运行多个模型 我希望结果如下所示 Model alpha Beta Rsquared F df model0
  • 使用SAS和mkdir在windows中创建目录结构

    我想在 Windows 中从 SAS 中创建目录结构 最好使用允许我指定 UNC 命名约定的方法 例如 computername downloads x y z 我在网上看到很多使用 DOS 的 SAS 示例mkdir通过调用命令 syse
  • Hadoop 与 SAS 的连接

    我想使用 SAS ACESS 9 3M2 接口将 SAS 与我的 Hive 连接 我的问题是 sas是否将hive立方体导入到sas环境中并在那里查询 或者 为了报告的目的 它再次访问 hive 以便它运行 MR 这将我的报告性能降低到 2
  • 想要创建序列号

    我想生成序列号 e g I have NID ABD90 BGJ89 HSA76 而且我要 ID NID 1 ABD90 2 BGJ89 3 HSA76 我应该运行什么代码才能得到这个结果 请帮我 既然你标记了 SAS 我就用 SAS 来回
  • 在SAS中运行程序的热键?

    我知道在 R 中我可以使用 control r 来运行我的程序代码 我想知道 SAS 中是否有等效的热键 如果没有 有没有办法将其 编程 到 SAS 中 运行 提交程序 的默认热键是 F8 键 如果您使用的是 Base SAS 不是 EG
  • 导出文件期间检测到打开代码语句递归

    我尝试在 SAS 中导出文件 但收到 检测到打开代码语句递归 错误 由于我根据根据提示日期定义为宏变量的日期导出多个文件 因此我想用此变量命名要导出的文件 但它不起作用 如果有人帮助我 我将非常感激 rep date 30APR2015 0
  • SAS 替换所有列中的字符

    我有一个 SAS 数据集 必须导出到 csv 文件 我有以下两个相互矛盾的要求 我必须使用分号作为 csv 文件中的分隔符 一些字符变量是从公式中手动输入的字符串 因此它们可能包含分号 我对上述问题的解决方案是转义分号或用逗号替换它 我怎样
  • 使用宏对数据集中的列按组求和

    我有一个数据集 如下所示 Month Cost Center Account Actual Annual Budget June 53410 Postage 13 234 June 53420 Postage 0 432 June 5343
  • sas中的分组依据

    我有以下数据集作为输入 ID 1 2 2 3 4 4 4 5 并需要一个新的数据集 如下所示 ID count of ID 1 1 2 2 3 1 4 3 5 1 您能告诉我如何在 SAS 中执行此操作而不使用 PROC SQL 吗 或者
  • 如何使用 proc Compare 更新数据集

    我想用proc compare每天更新数据集 work HAVE1 Date Key Var1 Var2 01Aug2013 K1 a 2 01Aug2013 K2 a 3 02Aug2013 K1 b 4 work HAVE2 Date
  • SAS 和 Excel 中百分位数的不同结果

    我正在尝试获取 SAS 中的百分位数 我在 Excel 中得到了百分位数 我期望在 SAS 中也得到相同的结果 但是当我在 SAS 中得到百分位数时 它与 excel 中的不同 我正在使用下面的示例数据 1 2 3 4 5 6 7 8 9
  • 在R中导入SAS cport文件

    我试图通过一些分析找出一种在 R 中导入 SAS cport 文件的方法 有人可以帮助我如何完成这项工作吗 我不想先使用 SAS 将其转换为 csv 然后再导入到 R 中 我尝试用谷歌搜索但无法找到合适的解决方案 Thanks None
  • 如何在更新宏变量的数据步骤中调用宏并立即使用该值?

    下面的例子非常简单 可能可以用更简单的方式解决 不过 我有兴趣让它发挥作用 以下示例基于 sashelp library 的 cars dataset 首先 我有一个名为 fun 的宏 proc contents data sashelp
  • SAS 宏日期问题

    我对 SAS 完全陌生 我的数据库包含 2000 2011 年的数据 我的数据集列表对于每个数据集都是这样的date TP 2004012 for 26JAN2004 TP 20040127 for 27JAN2004 TP 2004012
  • SAS:如何计算除某些字符变量之外的所有字符变量的频率

    我知道我可以使用类似以下内容来计算所有字符的频率 proc freq data sashelp class tables char run 但是 有没有办法排除一些变量呢 我想做类似的事情 proc freq data sashelp cl
  • 转置逗号分隔字段

    我有一个如下所示的数据集 并且正在使用 SAS Enterprise Guide 6 3 data have input id state cards 134 NC NY SC 145 AL NC NY SC run 我有另一个数据集 其中

随机推荐