t****e 发帖数: 23 | 1 收到excel格式的数据,需要先转成csv 再在SAS中import(无法直接读取excel数据)
。 如果打开excel用另存为csv的话,文本格式的id的leading zero就自动消失了。而
且id的长度不定,有数字也有字符。求问如何转换能保留leading zero,或者最后如何
修改sas数据。。。。 |
a****g 发帖数: 8131 | 2 为什么不能直接读excel?
【在 t****e 的大作中提到】 : 收到excel格式的数据,需要先转成csv 再在SAS中import(无法直接读取excel数据) : 。 如果打开excel用另存为csv的话,文本格式的id的leading zero就自动消失了。而 : 且id的长度不定,有数字也有字符。求问如何转换能保留leading zero,或者最后如何 : 修改sas数据。。。。
|
A*****a 发帖数: 1091 | 3 如果是我,会把id为字符(且最长的那个obs)挪到csv的第一行,这样id就会被定义成
字符格式,最开始的0就不会丢失了。
【在 t****e 的大作中提到】 : 收到excel格式的数据,需要先转成csv 再在SAS中import(无法直接读取excel数据) : 。 如果打开excel用另存为csv的话,文本格式的id的leading zero就自动消失了。而 : 且id的长度不定,有数字也有字符。求问如何转换能保留leading zero,或者最后如何 : 修改sas数据。。。。
|
A*****a 发帖数: 1091 | 4 我也有这个问题,换成9.3 64bit后,excel文件导入从来没成功过,不知道为什么
【在 a****g 的大作中提到】 : 为什么不能直接读excel?
|
c**b 发帖数: 661 | 5 用SAS自带的data import
【在 t****e 的大作中提到】 : 收到excel格式的数据,需要先转成csv 再在SAS中import(无法直接读取excel数据) : 。 如果打开excel用另存为csv的话,文本格式的id的leading zero就自动消失了。而 : 且id的长度不定,有数字也有字符。求问如何转换能保留leading zero,或者最后如何 : 修改sas数据。。。。
|
c**b 发帖数: 661 | 6 缺license, SAS/ACCESS Interface to PC Files
【在 A*****a 的大作中提到】 : 我也有这个问题,换成9.3 64bit后,excel文件导入从来没成功过,不知道为什么
|
A*****a 发帖数: 1091 | 7 看了下,不缺这个license呀,明年2月份才过期呢:
---SAS/ACCESS Interface to PC Files
28FEB2014
【在 c**b 的大作中提到】 : 缺license, SAS/ACCESS Interface to PC Files
|
d********e 发帖数: 9 | 8 用infile来import数据可以么,然后可以在format里定义,比如format id Z15.之类的 |
c**b 发帖数: 661 | 9 Excel is a 32-bit engine?
【在 A*****a 的大作中提到】 : 看了下,不缺这个license呀,明年2月份才过期呢: : ---SAS/ACCESS Interface to PC Files : 28FEB2014
|
a****g 发帖数: 8131 | 10 试试把excel save成97 xls format
【在 A*****a 的大作中提到】 : 我也有这个问题,换成9.3 64bit后,excel文件导入从来没成功过,不知道为什么
|
|
|
a****g 发帖数: 8131 | 11 读入没有问题
有问题的是export
【在 c**b 的大作中提到】 : Excel is a 32-bit engine?
|
A*****a 发帖数: 1091 | 12 excel确实是32位的
【在 c**b 的大作中提到】 : Excel is a 32-bit engine?
|
A*****a 发帖数: 1091 | 13 试了,还是不行,错误显示为:
ERROR: Connect: Class not registered
ERROR: Error in the LIBNAME statement.
Connection Failed. See log for details.
【在 a****g 的大作中提到】 : 试试把excel save成97 xls format
|
l******n 发帖数: 9344 | 14 driver issue
【在 A*****a 的大作中提到】 : 我也有这个问题,换成9.3 64bit后,excel文件导入从来没成功过,不知道为什么
|
Y****a 发帖数: 243 | 15 1.把ID强制为文本格式
2.如果不行,假定column A 是你的ID,用Excel function,concatenate 在数字前加
一个字符,比如 concatenate(“ID”,A1),SAS 读入的时候就判定为text,而非
numerical了 |
q*******t 发帖数: 18 | 16 If you have to use CSV, then can use cancaten to make 0090 as "0900" in
excel, then save as csv. After SAS import, use replace function replace "
as blank, and trim.
【在 t****e 的大作中提到】 : 收到excel格式的数据,需要先转成csv 再在SAS中import(无法直接读取excel数据) : 。 如果打开excel用另存为csv的话,文本格式的id的leading zero就自动消失了。而 : 且id的长度不定,有数字也有字符。求问如何转换能保留leading zero,或者最后如何 : 修改sas数据。。。。
|
j*****g 发帖数: 36 | 17 use import and then press F4, and then modify the generated code |
l*******s 发帖数: 1258 | 18 随便用个什么java或python啥的 装个open source lib
先把excel数据读出来 转成你需要的格式
比如java可以考虑POI |
t****e 发帖数: 23 | 19 数据比较大,而且改动数据顺序不知道合不合规矩,也许可以试试。
【在 A*****a 的大作中提到】 : 如果是我,会把id为字符(且最长的那个obs)挪到csv的第一行,这样id就会被定义成 : 字符格式,最开始的0就不会丢失了。
|
t****e 发帖数: 23 | 20 可惜公司server的sas不能对xls使用proc import. 不然就没有这个麻烦了。
【在 c**b 的大作中提到】 : 用SAS自带的data import
|
|
|
t****e 发帖数: 23 | 21 嗯可以,就是变量多不想一个个输name and type. :P
【在 d********e 的大作中提到】 : 用infile来import数据可以么,然后可以在format里定义,比如format id Z15.之类的
|
t****e 发帖数: 23 | 22 多谢。
【在 Y****a 的大作中提到】 : 1.把ID强制为文本格式 : 2.如果不行,假定column A 是你的ID,用Excel function,concatenate 在数字前加 : 一个字符,比如 concatenate(“ID”,A1),SAS 读入的时候就判定为text,而非 : numerical了
|
z*********i 发帖数: 146 | |
l*******s 发帖数: 1258 | 24 如果你会java的话,调用POI这个open source包,直接读取Excel数据,然后想怎么该
怎么改,随便输出什么格式。
呵呵,比较暴力直接的方法,但是it works!
【在 t****e 的大作中提到】 : 收到excel格式的数据,需要先转成csv 再在SAS中import(无法直接读取excel数据) : 。 如果打开excel用另存为csv的话,文本格式的id的leading zero就自动消失了。而 : 且id的长度不定,有数字也有字符。求问如何转换能保留leading zero,或者最后如何 : 修改sas数据。。。。
|
t**i 发帖数: 688 | 25 Use proc import with DBMS=excelcs
【在 t****e 的大作中提到】 : 收到excel格式的数据,需要先转成csv 再在SAS中import(无法直接读取excel数据) : 。 如果打开excel用另存为csv的话,文本格式的id的leading zero就自动消失了。而 : 且id的长度不定,有数字也有字符。求问如何转换能保留leading zero,或者最后如何 : 修改sas数据。。。。
|
t********m 发帖数: 939 | 26 这个看起来是个好办法,可是试了一下好像不行啊。比如说,如果ID是0001,用
concatenate("ID",A1)就变成了ID1而不是ID0001。如何改进呢?谢谢!
【在 Y****a 的大作中提到】 : 1.把ID强制为文本格式 : 2.如果不行,假定column A 是你的ID,用Excel function,concatenate 在数字前加 : 一个字符,比如 concatenate(“ID”,A1),SAS 读入的时候就判定为text,而非 : numerical了
|
l******n 发帖数: 9344 | 27 ID用text '0001
【在 t********m 的大作中提到】 : 这个看起来是个好办法,可是试了一下好像不行啊。比如说,如果ID是0001,用 : concatenate("ID",A1)就变成了ID1而不是ID0001。如何改进呢?谢谢!
|