楼主: 凡尘梦1990
8550 13

[问答] Excel中空格导致数值型变量导入sas变成字符型变量 [推广有奖]

  • 5关注
  • 2粉丝

讲师

46%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
3.0013
学术水平
5 点
热心指数
7 点
信用等级
0 点
经验
430 点
帖子
187
精华
0
在线时间
836 小时
注册时间
2012-10-9
最后登录
2024-2-1

10论坛币
新人求教。。如题,1、我在用sas导入Excel数据时,因为某个数值型变量,前几行在Excel中缺失是空格,导致导入sas数据集时,数值型变量识别成了字符型变量,请问如何在导入时控制和避免这一问题。(具体见下表,我知道导入后可以用变量加0或减0解决)。2、sas什么命令可以显示所有变量的格式。例如Stata可以用describe命令,显示出所有变量的格式。sas有类似的命令吗?

下表中,noncast是数值型变量,但因为在Excel中空格缺失,导入sas时就变成了字符型。。

StkcdAccperTyprepnoncasttotlasttotldebt
0000011999-12-31A

45868972050

42968141344

0000012000-01-01A

43912394151

42770790266

0000012000-06-30A

49732336516

46653823960



最佳答案

sniperhgy 查看完整内容

楼主你好,关于SAS导入excel的问题,有几点需要明确: 1. SAS导入excel,会根据excel每一列的类型进行导入,也就是在excel中,某一列是什么类型,导入进入就会是什么类型,但是有时候excel中的数据样子会骗人,比如某一列看似都是数字类型的,结果导入的时候,发现有空值,这个问题往往是由于要导入的数据列里面的类型不一致,请注意观察,如果某个单元格的左上角有一个小小的绿色三角,那么这个单元格就代表是文本的,即使内容是 ...
关键词:字符型变量 EXCEL xcel exce 数值型 describe Excel 如何
就这样吧。
沙发
sniperhgy 发表于 2014-10-25 11:11:20 |只看作者 |坛友微信交流群
楼主你好,关于SAS导入excel的问题,有几点需要明确:
1. SAS导入excel,会根据excel每一列的类型进行导入,也就是在excel中,某一列是什么类型,导入进入就会是什么类型,但是有时候excel中的数据样子会骗人,比如某一列看似都是数字类型的,结果导入的时候,发现有空值,这个问题往往是由于要导入的数据列里面的类型不一致,请注意观察,如果某个单元格的左上角有一个小小的绿色三角,那么这个单元格就代表是文本的,即使内容是数字,类型也是文本

2.空值和空格不是相等的,空格会被SAS认为是一个文本,而空值,SAS会根据后续的内容判断此列到底是什么类型,所以对于楼主所说的数据里面的noncast是数值型的,请确定那些空着的cell到底是空值还是空格。还有如果数据量不是很大的情况下,可以自己手动修改一下那一列的值,当然不是一个一个的输入了,先选中这一列,然后输入^G选择特殊,然后选择空值,输入一个特定值之后,按住ctrl再按回车,这样所有被选中的空值的格子的值就都被楼主指定成其他的了,推荐用999999代表missing,毕竟missing和0不是一样的。

3. 在SAS中要查看类型,可以用
  1. proc contents
  2.   noprint
  3.   data = xxx
  4.   out = yyy;
  5. run;
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
凡尘梦1990 + 5 + 1 + 1 + 1 热心帮助其他会员

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
凡尘梦1990 学生认证  发表于 2014-10-27 21:15:35 |只看作者 |坛友微信交流群
多谢。。以后还要多向您请教!

使用道具

板凳
sniperhgy 发表于 2014-10-28 10:10:26 |只看作者 |坛友微信交流群
凡尘梦1990 发表于 2014-10-27 21:15
多谢。。以后还要多向您请教!
没有问题,欢迎一起讨论问题。

使用道具

报纸
sniperhgy 发表于 2014-10-28 10:10:30 |只看作者 |坛友微信交流群
凡尘梦1990 发表于 2014-10-27 21:15
多谢。。以后还要多向您请教!
没有问题,欢迎一起讨论问题。

使用道具

地板
pingguzh 发表于 2014-10-28 16:39:38 |只看作者 |坛友微信交流群
学习了

使用道具

7
凡尘梦1990 学生认证  发表于 2014-10-29 20:57:47 |只看作者 |坛友微信交流群
sniperhgy 发表于 2014-10-25 11:11
楼主你好,关于SAS导入excel的问题,有几点需要明确:
1. SAS导入excel,会根据excel每一列的类型进行导入 ...
继续请教您个问题哈,下面数据是我计算的所有行业不同年度的roa值,我想问下,该用什么命令提取每一年度ROA从低到高排名前10的行业,以及从低到高排名前10的行业。同时第二步我想找到每年前十都在排名前十低的行业或前十高的行业。。第一步 应该是用  proc rank data=; var roa_mean; by year; ranks r_ind; run;
重点是第二步,谢谢!

ind        year        Roa_mean
C21        2003        -0.05166
C41        2003        0.02234
C37        2003        0.03184
S        2003        -0.04045
L        2003        0.01183
C18        2003        0.02273
E        2003        -0.00469
H        2003        -0.04756
C34        2003        0.01754
C15        2003        -0.04742
C22        2003        0.01648
K        2003        0.00964
F        2003        0.0078
A        2003        -0.00259
C28        2003        -0.02631
C26        2003        0.02371
C14        2003        0.05291
C30        2003        0.01916
C29        2003        0.00634
I        2003        -0.03082
C39        2003        0.0237
C17        2003        0.02422
R        2003        0.03418
C23        2003        0.03122
C25        2003        0.02522
C27        2003        0.03074
C38        2003        0.01507
C35        2003        0.03351
O        2003        0.04832
C40        2003        0.03173
D        2003        0.05018
C13        2003        0.04167
C33        2003        0.0142
G        2003        0.01998
N        2003        0.04186
C32        2003        0.02884
C36        2003        0.04412
B        2003        0.05522
C19        2003        0.0166
C31        2003        0.06796
C14        2004        0.01472
S        2004        0.00737
C17        2004        0.00156
A        2004        -0.03471
C28        2004        -0.00765
C34        2004        0.01862
E        2004        -0.0134
C41        2004        0.03205
C39        2004        0.0073
C23        2004        0.02052
I        2004        -0.06292
C30        2004        -0.02997
F        2004        0.01052
C37        2004        0.01323
C15        2004        0.00423
C29        2004        0.02258
C21        2004        0.05967
C22        2004        -0.01273
O        2004        0.04158
C26        2004        0.02496
C18        2004        -0.02916
H        2004        0.01631
C35        2004        0.00611
C27        2004        0.02308
K        2004        0.0178
R        2004        0.03178
C13        2004        0.00813
C38        2004        0.04247
D        2004        0.04692
C40        2004        -0.00285
C25        2004        0.03554
C36        2004        0.02246
N        2004        0.04852
L        2004        0.04192
C32        2004        0.04684
C19        2004        -0.02261
G        2004        0.03116
C33        2004        0.05221
B        2004        0.08124
C31        2004        0.06327



使用道具

8
sniperhgy 发表于 2014-10-30 10:13:41 |只看作者 |坛友微信交流群
凡尘梦1990 发表于 2014-10-29 20:57
继续请教您个问题哈,下面数据是我计算的所有行业不同年度的roa值,我想问下,该用什么命令提取每一年度R ...
楼主你好,只能下午再回复了,今天工作有点忙,不好意思

使用道具

9
sniperhgy 发表于 2014-10-30 11:21:59 |只看作者 |坛友微信交流群
凡尘梦1990 发表于 2014-10-29 20:57
继续请教您个问题哈,下面数据是我计算的所有行业不同年度的roa值,我想问下,该用什么命令提取每一年度R ...
楼主你好,现在在线吗?对于楼主描述的问题,没看懂,咱们来确认一下:
1.“用什么命令提取每一年度ROA从低到高排名前10的行业,以及从低到高排名前10的行业”
这句话里面,逗号之前的是对于year分组,而逗号之后的是不管year,直接做一个排名吗?

2.“同时第二步我想找到每年前十都在排名前十低的行业或前十高的行业”
这句话我看了半天也没弄懂……,按我的理解,是说找出一些企业,每一年的前十(或者后十)中,都有它们的存在?

请楼主讲问题重新描述一下,然后咱们再讨论程序的问题。

使用道具

10
凡尘梦1990 学生认证  发表于 2014-11-1 21:07:36 |只看作者 |坛友微信交流群
sniperhgy 发表于 2014-10-30 11:21
楼主你好,现在在线吗?对于楼主描述的问题,没看懂,咱们来确认一下:
1.“用什么命令提取每一年度ROA从 ...
你的理解是对的,就是说有些企业始终在前十或后十,我想找出每一年都在前十或后十位的行业。。谢谢!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 19:22