M*********9 发帖数: 15637 | 1 以前会的那个FUNCTION的。 好久不用, 给忘了。 哪个牛人给提醒一下? 谢谢。
for example
A B C
1 A/B A B
2 C/D C D |
D******n 发帖数: 2836 | 2 B2=LEFT(A2,FIND("/",A2)-1)
C2=RIGHT(A2,LEN(A2)-FIND("/",A2))
【在 M*********9 的大作中提到】 : 以前会的那个FUNCTION的。 好久不用, 给忘了。 哪个牛人给提醒一下? 谢谢。 : for example : A B C : 1 A/B A B : 2 C/D C D
|
M*********9 发帖数: 15637 | 3 谢谢。
好像还有更简单的方法。
【在 D******n 的大作中提到】 : B2=LEFT(A2,FIND("/",A2)-1) : C2=RIGHT(A2,LEN(A2)-FIND("/",A2))
|
g*********n 发帖数: 441 | 4 please use the data button in excel and text to column function then fixed
with the number with your requirment. |
M*********9 发帖数: 15637 | 5 awesome! 解决了。 俺就一年没用, 就啥都想不起来了, 越来越笨了。。。
多谢同修!
【在 g*********n 的大作中提到】 : please use the data button in excel and text to column function then fixed : with the number with your requirment.
|
M*********9 发帖数: 15637 | 6 有没有可能用SAS解决这个问题? 我用DLM, 老是说我格式不对。 好像可以弄A/ B,
不能弄A/B?
【在 g*********n 的大作中提到】 : please use the data button in excel and text to column function then fixed : with the number with your requirment.
|
A****t 发帖数: 141 | 7 试了一下,好像可以
A/B/C/D/E/F/G
A/B/C/D/E/F/G
A/B/C/D/E/F/G
data one;
infile "..." dlm='/';
input (x1-x7) ($);
run; |
M*********9 发帖数: 15637 | 8 单用这个是可以的:
A/B/C/D/E/F/G
A/B/C/D/E/F/G
A/B/C/D/E/F/G
但如果数据是这样呢?
1 1 A/B/C/D/E/F/G
1 2 A/B/C/D/E/F/G
2 1 A/B/C/D/E/F/G
2 2 A/B/C/D/E/F/G
老是说我格式不对。 谢谢。
【在 A****t 的大作中提到】 : 试了一下,好像可以 : A/B/C/D/E/F/G : A/B/C/D/E/F/G : A/B/C/D/E/F/G : data one; : infile "..." dlm='/'; : input (x1-x7) ($); : run;
|
D******n 发帖数: 2836 | 9 A/B/C/D/E/F/G 读进一个var,然后用index,substr 一个个弄出来。
【在 M*********9 的大作中提到】 : 单用这个是可以的: : A/B/C/D/E/F/G : A/B/C/D/E/F/G : A/B/C/D/E/F/G : 但如果数据是这样呢? : 1 1 A/B/C/D/E/F/G : 1 2 A/B/C/D/E/F/G : 2 1 A/B/C/D/E/F/G : 2 2 A/B/C/D/E/F/G : 老是说我格式不对。 谢谢。
|
s*******f 发帖数: 148 | 10 DATA temp;
INFILE CARDS DLM='/';
INPUT a1 1-1 a2 3-3 (b1-b7) ($);
CARDS;
1 1 A/B/C/D/E/F/G
1 2 A/B/C/D/E/F/G
2 1 A/B/C/D/E/F/G
2 2 A/B/C/D/E/F/G
;
RUN;
【在 M*********9 的大作中提到】 : 单用这个是可以的: : A/B/C/D/E/F/G : A/B/C/D/E/F/G : A/B/C/D/E/F/G : 但如果数据是这样呢? : 1 1 A/B/C/D/E/F/G : 1 2 A/B/C/D/E/F/G : 2 1 A/B/C/D/E/F/G : 2 2 A/B/C/D/E/F/G : 老是说我格式不对。 谢谢。
|
|
|
M*********9 发帖数: 15637 | 11 是按一个数据读的。 怎么INDEX, SUBSTR一个一个弄? 因为今后数据可能会很大,
EXCEL每次只能DELIMIT一个COLUMN。 俺在想是不是有什么方法让SAS给搞定。 不然要
使几百COLUMN,岂不要了俺的小命。
多谢。 俺自己也在乱试多COLUMN的情况。
【在 D******n 的大作中提到】 : A/B/C/D/E/F/G 读进一个var,然后用index,substr 一个个弄出来。
|
A****t 发帖数: 141 | 12 如果有其他variable就不能这么读了
几个比较笨的方法:
1.分成两个excel文件读,分别处理
2.把所有变量都读进一个data set,然后用IML处理把'/'去掉
3.如果可以不用SAS的话,用写字板打开,replace: '/' -> ' ' |
D******n 发帖数: 2836 | 13 who said that?
u can do this task in excel,
paste the data in excel, and use import data with wizard...choose space and
/ as delimiter...done.
【在 M*********9 的大作中提到】 : 是按一个数据读的。 怎么INDEX, SUBSTR一个一个弄? 因为今后数据可能会很大, : EXCEL每次只能DELIMIT一个COLUMN。 俺在想是不是有什么方法让SAS给搞定。 不然要 : 使几百COLUMN,岂不要了俺的小命。 : 多谢。 俺自己也在乱试多COLUMN的情况。
|
M*********9 发帖数: 15637 | 14 Thanks. It works!
【在 s*******f 的大作中提到】 : DATA temp; : INFILE CARDS DLM='/'; : INPUT a1 1-1 a2 3-3 (b1-b7) ($); : CARDS; : 1 1 A/B/C/D/E/F/G : 1 2 A/B/C/D/E/F/G : 2 1 A/B/C/D/E/F/G : 2 2 A/B/C/D/E/F/G : ; : RUN;
|
M*********9 发帖数: 15637 | 15 oh, my god. I love 3 so much! How come I forget this basic replace function!
^o^
Then no matter how huge the dataset is, just replace all. Awesome! You save
my life. Thanks a lot.
【在 A****t 的大作中提到】 : 如果有其他variable就不能这么读了 : 几个比较笨的方法: : 1.分成两个excel文件读,分别处理 : 2.把所有变量都读进一个data set,然后用IML处理把'/'去掉 : 3.如果可以不用SAS的话,用写字板打开,replace: '/' -> ' '
|
D******n 发帖数: 2836 | 16 dont confine yourself to SAS, sas is not good at handling dirty data set.
this can be done under linux in one line
sed 's/\// /g' yourdata>newdata
and as i said, u dont even need this if u do it in excel.
function!
save
【在 M*********9 的大作中提到】 : oh, my god. I love 3 so much! How come I forget this basic replace function! : ^o^ : Then no matter how huge the dataset is, just replace all. Awesome! You save : my life. Thanks a lot.
|
M*********9 发帖数: 15637 | 17 Then in the future I have more time to water, hoho...just let softwares to
run a run.
Thanks, everyone!:)) |