在SAS中使用循环重命名索引列?
我有一个数据集,其中变量为 col1、col2、col3、...、col15。我想将它们重命名为new1,new2,new3,...,new 15。我可以写15次类似的rename col1 = new1;在 SAS 中,但如何使用循环实现此目的?谢谢。
I have a dataset with variables as col1, col2, col3, ..., col15. I want to rename them to new1, new2, new3, ..., new 15. I can write 15 times the similar rename col1 = new1; in SAS but how can I achieve this using loop? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,不清楚您是在谈论
proc datasets
中的rename
语句还是在数据步骤中。如果您不需要对数据执行任何其他操作,则绝对应该使用 proc 数据集来执行此操作,因为否则(在数据步骤中)您不必读取/写入数据集中的每条记录,只是为了更改变量名称。如果您正在使用数据步骤,只需使用
我不确定您是否可以在 proc 数据集中使用该快捷方式。这让我们想到了你的循环问题。除非您多次或动态地执行此操作,否则复制/粘贴代码 15 次可能同样容易。以下是生成所需语句的方法,将其放入宏变量中,然后在重命名语句中使用该宏变量:
Firstly, it's not clear whether you're talking about the
rename
statement inproc datasets
or in the data step. If you don't need to do anything else to the data, you should definitely use proc datasets to do this, because otherwise (in a data step) you're unnecessarily reading/writing every record in the dataset, just to alter variable names.If you are using the data step, just use
I'm not sure if you can use that shortcut in proc datasets. Which brings us to your looping question. Unless you're doing this lots of times or dynamically, it's probably just as easy to copy/paste the code 15 times. Here's a way to generate the statement you want, put it in a macro variable, and use that macro variable in the rename statement:
如果您的变量名称符合良好、简单的命名模式,则可以采用以下方法:
或者更一般地说:
Here's a way to do it in the case that your variable names fit a nice, easy naming pattern:
Or, more generically: