gpt4 book ai didi

没有 3 个数据步骤的 SAS 更改变量值

转载 作者:行者123 更新时间:2023-12-05 04:23:53 28 4
gpt4 key购买 nike

当我在 SAS 中编码时,我经常需要更改变量的值,例如将字符转换为数字或四舍五入值。据我所知,由于 SAS 的工作方式,我通常必须分三步完成,如下所示:

data change;
set raw;
words = put(zipcode, $5.);
run;

data drop;
set change;
drop zipcode;
run;

data rename;
set drop;
rename words = "zipcode";
run;

有没有一种方法可以在单个数据或过程步骤中执行类似的操作,而不必输入三个?不仅适用于变量类型转换,还适用于 ROUND 语句等内容。

提前致谢。

最佳答案

这就是数据集选项的巨大优势所在。它们在 DATA 步、SQL 以及几乎所有引用数据集的 PROC 中工作。

您可以通过多种方式在单个数据步骤中完成所有这些操作。

<强>1。输出数据集选项

data change(rename=(words = zipcode) );
set raw;
words = put(zipcode, $5.);

drop zipcode;
run;

这是发生了什么:

  1. words 在数据集中创建
  2. 在数据步骤结束时,zipcode 被丢弃。
  3. 作为删除 zipcode 之后的最后一步,words 重命名为 zipcode

这称为输出数据集选项。这是数据集最终写入之前发生的最后一件事。

<强>2。输入数据集选项

data change;
set raw(rename=(zipcode = _zipcode) );
words = put(_zipcode, $5.);

drop _zipcode;
run;

这是发生了什么:

  1. 在读取raw之前,zipcode重命名为_zipcode
  2. words 被创建
  3. _zipcode 从数据集中删除

输入/输出数据集选项非常强大。您可以使用它们创建特殊的 where 子句、索引、压缩数据等等。

您可以在此处查看所有可用的数据集选项: https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/ledsoptsref/p1pczmnhbq4axpn1l15s9mk6mobp.htm

关于没有 3 个数据步骤的 SAS 更改变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73623796/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com