在不创建新数据文件的情况下子集sas数据集,而创建新变量

在不创建新数据文件的情况下子集sas数据集,而创建新变量,sas,Sas,我的数据集中有3个变量:id、Time和y1 现在我想在Time=1时创建一个值为y1的新变量 我该怎么做呢?您总是需要创建一个新的数据集,但它不必有不同的名称 data have; set have; if time=1 then y1_time1=y1; run; SAS将创建第二个have,然后如果数据步骤顺利完成,它将用第二个have替换第一个have。这假设您有replace(数据集自动允许替换,除非您将其设置为不允许替换)。在我看来,您的标题和问题不一致。此外,请在每篇文章

我的数据集中有3个变量:
id
Time
y1

现在我想在
Time=1
时创建一个值为
y1
的新变量

我该怎么做呢?

您总是需要创建一个新的数据集,但它不必有不同的名称

data have;
  set have;
  if time=1 then y1_time1=y1;
run;

SAS将创建第二个
have
,然后如果数据步骤顺利完成,它将用第二个
have
替换第一个
have。这假设您有
replace
(数据集自动允许替换,除非您将其设置为不允许替换)。

在我看来,您的标题和问题不一致。此外,请在每篇文章中提出一个问题。您询问创建一个新变量,但title指的是子集数据。你想做什么,你试过什么?删除你的第二个问题;如果你想问第二个问题,可以单独问一个问题。@RobertPenridge我收回了你的找零;您在标题更改中丢失了一些重要信息,特别是OP询问如何在不创建新数据文件的情况下执行此操作。“这很重要。”乔,那么我认为修改可能比回滚更合适。此外,如果是这样的话,他们是否希望对数据集进行就地修改(对于大得离谱的文件可能需要这样做),或者创建一个包含相同名称的新数据集。这一点也很重要,因为前者不允许添加新列(我认为这是一个重要的细节,可以明确指出他们是否希望这样做)。用“添加新列时”这样的词来澄清“您始终需要创建新数据集”可能是有益的。