难以理解 SAS 中的“_n_”变量,以及它如何应用于连接函数

Posted

技术标签:

【中文标题】难以理解 SAS 中的“_n_”变量,以及它如何应用于连接函数【英文标题】:Difficulty understanding the "_n_" variable in SAS, and how it applies to a concatenate function 【发布时间】:2022-01-22 09:36:29 【问题描述】:

我对 SAS 非常陌生,无论出于何种原因,我都很难理解这个代码块(如下)的作用。我用谷歌搜索并搜索***无济于事。如有任何意见,我将不胜感激,谢谢!

set dataset;
id=cat("L",_n_);
run;

【问题讨论】:

在这种用法中,将其视为行号的一种方法是,但它实际上表示数据步的循环数。在更复杂的数据步骤中,它们会有所不同,但在您的示例/用法中,行号是一个很好的类比。 【参考方案1】:

可能还必须有一个data 声明。

data newdataset;
   set dataset;
   id = cat("L", _n_);
run;

以上代码从名为dataset 的现有数据集创建一个名为 newdataset 的新数据集。

同时创建一个名为id 的新列,id 是通过使用CAT 函数将常量字符值“L”与自动变量_n_ 连接起来创建的。自动变量_n_ 表示 DATA 步迭代的次数。

【讨论】:

是的,我错过了数据声明。那么对于结果列 id,所有值都是“L”吗?或者他们是否计数,例如如果数据集有 10 行,最后一行在 id 列中的值为 L10? @jschol30 运行代码并检查输出。 SAS 是免费的在线/云学习。

以上是关于难以理解 SAS 中的“_n_”变量,以及它如何应用于连接函数的主要内容,如果未能解决你的问题,请参考以下文章

SAS中_N_代表啥意思呢?

如果 _N_ = 1 条件返回 true,即使在 SAS 中设置的数据集为空(零观测值)

如何重命名SAS中的所有变量?

sas如何计算相邻观测的差值

在SAS中导入许多文件.txt

SAS如何对重复记录中的变量求和