楼主: tianlai888
5223 6

[原创博文] 求助:能不能用查找‘列标签’来命名‘列名’。 [推广有奖]

  • 0关注
  • 0粉丝

本科生

19%

还不是VIP/贵宾

-

威望
0
论坛币
46 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
540 点
帖子
44
精华
0
在线时间
57 小时
注册时间
2009-1-9
最后登录
2012-5-18

楼主
tianlai888 发表于 2009-11-1 19:23:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求助:
    有一EXCEL数据表:
代码名称日期开盘价(元)收盘价(元)最高价(元)最低价(元)均价(元)涨跌
涨跌幅(%)
000001深发展A2009-10-3022.8022.4822.9622.2322.680.271.22
000004*ST国农2009-10-308.868.939.218.779.060.161.82



用 proc import   导入SAS数据集后,原EXCEL的变量名称变为‘列标签’,变量名则用COL0、COL1、COL2.....命名。

由于EXCEL数据表的名称比较多,每天下载的各名称的位置会有变化,每天检查各变量名称的位置顺序,比较麻烦。

如果不检查一旦顺序不对,用SAS将每天数据串接时就会出错。

求助:
将每天的EXCEL数据表导入SAS后,能不能查找‘列标签’重新命名,再将每天的数据集按照变量名串接起来。

如:‘列标签”为‘代码’,不管它在哪一列,变量名为‘daima’。

谢谢!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:不能用 excel数据 sas数据集 import EXCEL import 最低价 开盘价 收盘价 数据表

回帖推荐

horace_chen 发表于7楼  查看完整内容

data aa; input _col0 $ _col1 date9. _col2-_col5; attrib _col0 label="代码" _col1 label="日期" _col2 label="开盘价" _col3 label="最高价" _col4 label="最低价" _col5 label="收盘价"; datalines; SH000001 19DEC1990 96.05 99.98 95.79 99.98 SH000001 19DEC1990 96.05 99.98 95.79 99.98 ; run; data name; input name $ label $; datalines; daima 代码 riqi 日期 k ...

本帖被以下文库推荐

沙发
guoluo 发表于 2009-11-1 19:57:52
把EXCEL数据表里的变量名改成英文的,重新导入再加上中文标签就可以了

藤椅
tianlai888 发表于 2009-11-1 21:54:20
把EXCEL数据表里的变量名改成英文的。这和每天检查排列顺序一样,比较麻烦。

板凳
nankailiqi 发表于 2009-11-3 04:57:34
不能,sas的列标签只能在输入输出或察看数据集的时候使用,但标签本身和变量名不同,数据集的各种操作只能针对变量名进行,不能对标签进行。甚至只能建立从变量名到标签的对应,无法建立从标签到变量名的对应。

报纸
xuwei2007 发表于 2009-11-3 08:11:02
SAS 不支持中文变量名

地板
qzuxwj138 发表于 2009-11-3 10:47:44
好像是思瑞的数据,是曾相识的感觉

7
horace_chen 发表于 2009-11-3 12:32:41
data aa;
input _col0 $ _col1 date9. _col2-_col5;
attrib _col0 label="代码"
  _col1 label="日期"
  _col2 label="开盘价"
  _col3 label="最高价"
  _col4 label="最低价"
  _col5 label="收盘价";
datalines;
SH000001 19DEC1990 96.05 99.98 95.79 99.98
SH000001 19DEC1990 96.05 99.98 95.79 99.98
;
run;


data name;
        input name $ label $;
        datalines;
daima 代码
riqi 日期
kpj 开盘价
zgj 最高价
zdj 最低价
spj 收盘价
        ;
        run;

proc sql;
        create table newName as
        select a.name,b.name as newname
                from dictionary.columns as a,name as b
                   where a.libname="WORK" and a.memname="AA" and a.label=b.label;
        quit;

%macro rename;
proc sql;
        select count(*) into:n from newname;
        select name into :name1- :name%left(&n) from newname;
        select newname into :newname1- :newname%left(&n) from newname;
quit;

%do i=1 %to &n;
proc datasets library=work;
        modify aa;
                rename &&name&i=&&newname&i;
quit;
%end;
%mend;

%rename;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 02:03