【发布时间】:2016-05-31 17:19:10
【问题描述】:
我从 Python/R/Stata 背景来到 SAS,并了解到 SAS 的情况大不相同。从其中一种语言的角度来看,我正在处理以下问题,也许 SAS 不符合我的要求。
我有一个面板数据集,其中包含 age 列。我想使用此 age 列向数据集添加新列。在我的示例中,我将简化 age 的功能以使其保持简单。
目标是循环一个序列,并在每个循环步骤中使用该序列的值 1. 分配新列的名称和 2. 分配该列的值。我希望得到我的起始数据集,并在其中添加新列以获取值 spline1 spline2... spline7
data somePath.FinalDataset;
do i = 1 to 7;
if i = 1 then
spline&i. = age;
if i ^= 1 then spline&i. = age + i;
end;
set somePath.StartingDataset;
run;
这段代码甚至不会运行,虽然在早期版本中我能够让它运行,但是新列的值从它们本来应该的值向下移动了一行。我将此代码块包含为我正在尝试做的伪代码。非常感谢任何帮助
【问题讨论】:
-
你打算循环什么?列数 (7) 是固定的还是动态的?我认为你需要一个数组。
-
您需要发布示例输入和输出数据,以便我们了解您想要做什么。第一个明显的问题是您试图在读取数据之前对其进行操作。将 SET 语句移到其他语句上方,以便为 AGE 提供一些值供您的代码操作。