y*****h 发帖数: 34 | 1 新手请教一下。
如果数据里面的variable name是这样的形式
item_1_time, item_2_time, item_3_time.......
想改成
item_time_1, item_time_2, item_time_3........
应该怎么实现呢?
谢谢各位。 |
EA 发帖数: 3965 | 2 Array
【在 y*****h 的大作中提到】 : 新手请教一下。 : 如果数据里面的variable name是这样的形式 : item_1_time, item_2_time, item_3_time....... : 想改成 : item_time_1, item_time_2, item_time_3........ : 应该怎么实现呢? : 谢谢各位。
|
l****u 发帖数: 529 | |
m******e 发帖数: 1399 | 4 用excel 下拉一下就可以了。
【在 l****u 的大作中提到】 : macro do loop
|
h******e 发帖数: 1791 | 5 call execute
【在 y*****h 的大作中提到】 : 新手请教一下。 : 如果数据里面的variable name是这样的形式 : item_1_time, item_2_time, item_3_time....... : 想改成 : item_time_1, item_time_2, item_time_3........ : 应该怎么实现呢? : 谢谢各位。
|
e******7 发帖数: 797 | 6 同是新手,不知最简洁的方法or标准答案,我的拙见如下,array+do loop
Data new_data (drop=item_1_time item_2_time item_3_time ..... item_n_time);
Set old_data;
Array old_name{n} item_1_time item_2_time item_3_time ...... item_n_time;
Array new_name{n} item_time_1 itemn_time_2 item_time_3 ...... item_time_n;
/*can use shortcuts for variable lists here*/
Do i = 1 to n;
new_name{i}=old_name{i};
End;
Run;
【在 y*****h 的大作中提到】 : 新手请教一下。 : 如果数据里面的variable name是这样的形式 : item_1_time, item_2_time, item_3_time....... : 想改成 : item_time_1, item_time_2, item_time_3........ : 应该怎么实现呢? : 谢谢各位。
|
p**********7 发帖数: 122 | |
c****u 发帖数: 243 | 8 data want;
set have;
array old(*) item_1_time -- item_n_time; *change n ;
array item_time_{dim(old)};
do i = 1 to dim(old);
item_time_{i} = old{i};
end;
drop item_1_time -- item_n_time;
run; |
r***k 发帖数: 13586 | 9 %macro cover;
%local i;
data new;
set old;
rename
%do i=1 %to 100;
item_&i._time=item_time_&i.;
%end;
;
run;
%mend cover;
%cover; |
T*****t 发帖数: 518 | 10 厉害
【在 r***k 的大作中提到】 : %macro cover; : %local i; : data new; : set old; : rename : %do i=1 %to 100; : item_&i._time=item_time_&i.; : %end; : ; : run;
|
w**p 发帖数: 4080 | 11 这种大批量的肯定要写marco做do loop |
w********m 发帖数: 1137 | 12 做个python的转换器,空间O(1), 时间O(n)
def rename(s):
"""
>>> rename("item_1_time")
'rename item_1_time = item_time_1;'
"""
current = s.split('_')
current[1], current[2] = current[2], current[1]
new = '_'.join(current)
return 'rename {} = {};'.format(s, new) |