我正在使用锻炼应用的.csv导出。它记录日期,时间,锻炼,代表,体重和评论。像许多.csv文件一样,它有点乱。
示例:
Date,Time,Exercise,# of Reps,Weight,Comments12/23/2014,14:52,Hip Abduction,30,180,12/23/2014,14:52,Hip Abduction,30,180,12/23/2014,14:51,Inverse Bench,15,95,12/23/2014,14:51,Abb Twist,30,100,12/23/2014,14:51,Pull-Ups,5,170,12/23/2014,14:27,Squat,15,135,12/23/2014,14:27,Squat,15,13512/23/2014,14:27,Squat,15,13512/23/2014,14:27,Deadlift,15,135,12/23/2014,14:27,Crunch,30,170,12/23/2014,14:27,Crunch,30,17012/23/2014,14:27,Crunch,30,17012/23/2014,14:26,Bench,15,135,12/23/2014,14:26,Bench,15,13512/23/2014,14:26,Bench,15,135,etc...
我已经能够导入数据,但它将字符数限制为8;如日期和运动变量所示。
SAS代码:
DATA strength;
infile 'C:\Users\user\Google Drive\strength.csv' DLM = ',' DSD;
input Date $ Time $ Exercise $ Reps Weight Comments;
if date = 'Date' then delete; *removes first obs - the csv header;
RUN;
PROC PRINT data = strength;
title 'Simple Work Out Log Export';
RUN;
SAS输出:
Obs Date Time Exercise Reps Weight Comments
1 12/23/20 14:52 Hip Abdu 30 180 .
2 12/23/20 14:52 Hip Addu 30 180 .
3 12/23/20 14:51 Inverse 15 95 .
4 12/23/20 14:51 Abb Twis 30 100 .
etc...
我没有很多使用.csv文件的经验,但我确实尝试过使用
input Date $ Time $ Exercise $ 12. ....
但这不起作用,因为不同的练习有不同的长度名称。
如何导入原始.csv数据文件的完整日期和练习名称?
谢谢!
答案 0 :(得分:1)
您可以在INFORMAT
语句中声明变量的长度。
在input
之前尝试此操作。
informat var1 $X1. var2 $X2.;
将var1
和var2
替换为变量名称,将X1
和X2
替换为长度。
您可以使用informat
将日期和时间作为实际日期和时间类型进行阅读。您还可以在FIRSTOBS=2
语句中使用infile
指定从第2行开始的读取。
我可以在http://support.sas.com/documentation/onlinedoc/base/index.html在线查看SAS文档中的所有这些陈述。
informat
答案 1 :(得分:1)
还可以编写一个稍微复杂的输入语句,在不使用informat语句的情况下执行您想要的操作:
input date :mmyydd10. time :time. Exercise :$32. reps :8. weight :8.;
然后,您可以应用日期和时间格式:
format date mmddyy10. time time.;
答案 2 :(得分:0)
在此处使用冒号运算符
你在这里看到每个信息前都有一个冒号。这个冒号(称为信息 修饰符)告诉SAS使用提供的信息但要停止读取此值 遇到分隔符时变量。不要忘记冒号,因为没有它们 SAS可能会读取分隔符以满足信息中指定的宽度。
DATA strength;
format date mmddyy10. time time.;
infile 'C:\Users\user\Google Drive\strength.csv' DLM = ',' DSD;
input date : mmyydd10.
time : time.
Exercise : $50. /*Maximum length of Execrise in your dataset,have assumed 50*/
reps : 8.
weight : 8.
Comments : $50.; /*Maximum length of comments in your dataset,have assumed 50*/
if date = 'Date' then delete; *removes first obs - the csv header;
RUN;
PROC PRINT data = strength;
title 'Simple Work Out Log Export';
RUN;