使用MODIFY(无sql)添加列是SAS
我是SAS新手,在使用MODIFY语句(不使用proc sql)向SAS中的现有数据集添加列时遇到一些问题 假设我有这样的数据使用MODIFY(无sql)添加列是SAS,sas,Sas,我是SAS新手,在使用MODIFY语句(不使用proc sql)向SAS中的现有数据集添加列时遇到一些问题 假设我有这样的数据 id name salary perks 1 John 2000 50 2 Mary 3000 120 我需要的是一个新的专栏,里面有薪水和津贴的总和。 我试着这样做 data data1; modify data1; money=salary+perks; run; 但显然它不起作用。 如果有任何帮助,我将不胜感激 无法将列添
id name salary perks
1 John 2000 50
2 Mary 3000 120
我需要的是一个新的专栏,里面有薪水和津贴的总和。
我试着这样做
data data1;
modify data1;
money=salary+perks;
run;
但显然它不起作用。
如果有任何帮助,我将不胜感激 无法将列添加到现有数据集中。您可以创建具有相同名称的新数据集
data data1;
set data1;
money=salary+perks;
run;
SAS会将其构建为一个新的物理文件(具有临时名称),当该步骤顺利完成时,它会删除原始文件并重命名新文件。您不能向现有数据集添加列。您可以创建具有相同名称的新数据集
data data1;
set data1;
money=salary+perks;
run;
SAS将把它构建为一个新的物理文件(带有一个临时名称),当该步骤顺利完成时,它将删除原始文件并重命名新文件。正如@Tom所述,您使用SET访问数据集 我通常不建议在set和data语句中使用相同的名称进行编程,尤其是在学习SAS时。这是因为更难检测错误,因为一旦运行并遇到错误,您将破坏原始数据集,并且必须在重新开始之前重新创建它
如果您想一步一步地工作,请考虑中间数据集,然后在使用PROC数据集删除任何不必要的中间数据集之后清理。使用命名约定可以一次删除所有数据,即data1、data2、data3可以引用为data1-data3或data:
data data2;
set data1;
money = salary + perks;
run;
您现在确实有两个数据集,但以后很容易删除数据集,现在可以分段运行代码,而不是一次运行所有数据集
下面是如何删除中间数据集
proc datasets library=work nodetails holist;
delete data1-data3;
run;quit;
正如@Tom提到的,您使用SET访问数据集 我通常不建议在set和data语句中使用相同的名称进行编程,尤其是在学习SAS时。这是因为更难检测错误,因为一旦运行并遇到错误,您将破坏原始数据集,并且必须在重新开始之前重新创建它
如果您想一步一步地工作,请考虑中间数据集,然后在使用PROC数据集删除任何不必要的中间数据集之后清理。使用命名约定可以一次删除所有数据,即data1、data2、data3可以引用为data1-data3或data:
data data2;
set data1;
money = salary + perks;
run;
您现在确实有两个数据集,但以后很容易删除数据集,现在可以分段运行代码,而不是一次运行所有数据集
下面是如何删除中间数据集
proc datasets library=work nodetails holist;
delete data1-data3;
run;quit;
如果要使用数据集,请执行以下操作:
data dataset;
set dataset;
format new_column $12;
new_column = 'xxx';
run;
或者使用Proc SQL和ALTER TABLE
proc sql;
alter table dataset
add new_column char(8) format = $12.
;
quit;
如果要使用数据集,请执行以下操作:
data dataset;
set dataset;
format new_column $12;
new_column = 'xxx';
run;
或者使用Proc SQL和ALTER TABLE
proc sql;
alter table dataset
add new_column char(8) format = $12.
;
quit;
由于询问者试图避免创建额外的数据集,我还建议在此处使用视图。它没有提及任何关于额外数据集的内容,只向现有数据集添加列。由于询问者试图避免创建额外数据集,我还建议在此处使用视图。它没有提及任何关于额外数据集的内容,仅向现有数据集中添加列。非常感谢!非常感谢你!