これとほぼ同じですが、私が読んでいるファイルのいくつかに気付いた最終的な修正があります。投稿しているコードは、同様のファイルをループするマクロの一部です。古いrawファイルにはダッシュの代わりにスラッシュが付いています。これは、読んだ段階では運がないと置き換えようとしています。 SASはこれらの欠損値を返しています:Infile中の文字をSCANとTRANWRDで置き換えます
data test;
infile "&filename"
delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ;
length
EventTypes 8
EventLabels $21
EventID 8
Player_ID 8
ExpandedMinute 8
Second 8
TeamID 8
EndY 8
EndX 8
Y 8
X 8
IsTouch $5
ID 8
Minute 8
Period $10
Type $25
OutcomeType $12
Area1 $25
Area2 $25
ParamVal1 $15
ParamVal2 $15
MatchID 8
MatchDate 8
HomeTeamName $100
AwayTeamName $100
FTScore $5
HomeScore 8
AwayScore 8
;
informat EventTypes best32. ;
informat EventLabels $21. ;
informat EventID best32. ;
informat Player_ID best32. ;
informat ExpandedMinute best32. ;
informat Second best32. ;
informat TeamID best32. ;
informat EndY best32. ;
informat EndX best32. ;
informat Y best32. ;
informat X best32. ;
informat IsTouch $5. ;
informat ID best32. ;
informat Minute best32. ;
informat Period $10. ;
informat Type $25. ;
informat OutcomeType $12. ;
informat Area1 $25. ;
informat Area2 $25. ;
informat ParamVal1 $15. ;
informat ParamVal2 $15. ;
informat MatchID best32. ;
informat MatchDate ddmmyy10. ;
informat HomeTeamName $100. ;
informat AwayTeamName $100. ;
informat FTScore $5. ;
informat HomeScore best32. ;
informat AwayScore best32. ;
format EventTypes best12. ;
format EventLabels $21. ;
format EventID best12. ;
format Player_ID best12. ;
format ExpandedMinute best12. ;
format Second best12. ;
format TeamID best12. ;
format EndY best12. ;
format EndX best12. ;
format Y best12. ;
format X best12. ;
format IsTouch $5. ;
format ID best12. ;
format Minute best12. ;
format Period $10. ;
format Type $25. ;
format OutcomeType $12. ;
format Area1 $25. ;
format Area2 $25. ;
format ParamVal1 $15. ;
format ParamVal2 $15. ;
format MatchID best12. ;
format MatchDate ddmmyy10. ;
format HomeTeamName $100. ;
format AwayTeamName $100. ;
format FTScore $5. ;
format HomeScore best12. ;
format AwayScore best12. ;
input
EventTypes
EventLabels $
EventID
Player_ID
ExpandedMinute
Second
TeamID
EndY
EndX
Y
X
IsTouch $
ID
Minute
Period $
Type $
OutcomeType $
Area1 $
Area2 $ @;
if scan(_infile_,20,',') not in ('Back', 'Defence', 'Forward', 'Left', 'Midfield', 'Right') then
input ParamVal1 @;
else
input ParamVal2 @;
input
MatchID @;
MatchDate = tranwrd((scan(_infile_,21,',')), "/", "-");
input MatchDate @;
input
HomeTeamName $
AwayTeamName $
FTScore $
HomeScore
AwayScore;
if ParamVal1 = '' then ParamVal1 = '0';
if ParamVal2 = '' then ParamVal2 = 'None';
run;
誰かがこれをうまく動作させるために上記の修正案を提案できますか?
おかげ
EDIT:
を要求したとして、ここでは欠損値を生成している生のデータラインである:
118,shortPassAccurate,3,4511,0,5,24,48.5,51.1,52.2,49.4,True,1394118243.0,0,FirstHalf,Start,Successful,PassEndX,None,51.1,410988,08/14/2010,Aston Villa,West Ham,3 : 0,3,0,
ジョブ・ログは、次のようになります。
Record: _410988_08_14_2010 processed successfully. Processing next record...
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
2 0,None,2,0,0,0,24,0.0,0.0,0.0,0.0,False,1505579494.0,0,NoQual,NoQual,NoQual,NoQual,NoQual,0.0,410988
101 ,08/14/2010,Aston Villa,West Ham,3 : 0,3,0, 143
EventTypes=0 EventLabels=None EventID=2 Player_ID=0 ExpandedMinute=0 Second=0 TeamID=24 EndY=0 EndX=0 Y=0 X=0 IsTouch=False
ID=1505579494 Minute=0 Period=NoQual Type=NoQual OutcomeType=NoQual Area1=NoQual Area2=NoQual ParamVal1=0.0 ParamVal2=None
MatchID=410988 MatchDate=. HomeTeamName=Aston Villa AwayTeamName=West Ham FTScore=3 : 0 HomeScore=3 AwayScore=0 _ERROR_=1
_INFILE_=0,None,2,0,0,0,24,0.0,0.0,0.0,0.0,False,1505579494.0,0,NoQual,NoQual,NoQual,NoQual,NoQual,0.0,410988,08/14/2010,Aston Villa,
West Ham,3 : 0,3,0, _N_=1
3 0,None,2,0,0,0,29,0.0,0.0,0.0,0.0,False,49800133.0,0,NoQual,NoQual,NoQual,NoQual,NoQual,0.0,410988,0
101 8/14/2010,Aston Villa,West Ham,3 : 0,3,0, 141
EventTypes=0 EventLabels=None EventID=2 Player_ID=0 ExpandedMinute=0 Second=0 TeamID=29 EndY=0 EndX=0 Y=0 X=0 IsTouch=False
ID=49800133 Minute=0 Period=NoQual Type=NoQual OutcomeType=NoQual Area1=NoQual Area2=NoQual ParamVal1=0.0 ParamVal2=None
MatchID=410988 MatchDate=. HomeTeamName=Aston Villa AwayTeamName=West Ham FTScore=3 : 0 HomeScore=3 AwayScore=0 _ERROR_=1
_INFILE_=0,None,2,0,0,0,29,0.0,0.0,0.0,0.0,False,49800133.0,0,NoQual,NoQual,NoQual,NoQual,NoQual,0.0,410988,08/14/2010,Aston Villa,We
st Ham,3 : 0,3,0, _N_=2
4 90,midThird,3,4511,0,5,24,48.5,51.1,52.2,49.4,True,1394118243.0,0,FirstHalf,Start,Successful,PassEnd
101 Y,None,48.5,410988,08/14/2010,Aston Villa,West Ham,3 : 0,3,0, 161
EventTypes=90 EventLabels=midThird EventID=3 Player_ID=4511 ExpandedMinute=0 Second=5 TeamID=24 EndY=48.5 EndX=51.1 Y=52.2 X=49.4
IsTouch=True ID=1394118243 Minute=0 Period=FirstHalf Type=Start OutcomeType=Successful Area1=PassEndY Area2=None ParamVal1=48.5
ParamVal2=None MatchID=410988 MatchDate=. HomeTeamName=Aston Villa AwayTeamName=West Ham FTScore=3 : 0 HomeScore=3 AwayScore=0
_ERROR_=1
_INFILE_=90,midThird,3,4511,0,5,24,48.5,51.1,52.2,49.4,True,1394118243.0,0,FirstHalf,Start,Successful,PassEndY,None,48.5,410988,08/14
/2010,Aston Villa,West Ham,3 : 0,3,0, _N_=3
5 90,midThird,3,4511,0,5,24,48.5,51.1,52.2,49.4,True,1394118243.0,0,FirstHalf,Start,Successful,Length,
101 None,3.1,410988,08/14/2010,Aston Villa,West Ham,3 : 0,3,0, 158
EventTypes=90 EventLabels=midThird EventID=3 Player_ID=4511 ExpandedMinute=0 Second=5 TeamID=24 EndY=48.5 EndX=51.1 Y=52.2 X=49.4
IsTouch=True ID=1394118243 Minute=0 Period=FirstHalf Type=Start OutcomeType=Successful Area1=Length Area2=None ParamVal1=3.1
ParamVal2=None MatchID=410988 MatchDate=. HomeTeamName=Aston Villa AwayTeamName=West Ham FTScore=3 : 0 HomeScore=3 AwayScore=0
_ERROR_=1
_INFILE_=90,midThird,3,4511,0,5,24,48.5,51.1,52.2,49.4,True,1394118243.0,0,FirstHalf,Start,Successful,Length,None,3.1,410988,08/14/20
10,Aston Villa,West Ham,3 : 0,3,0, _N_=4
6 90,midThird,3,4511,0,5,24,48.5,51.1,52.2,49.4,True,1394118243.0,0,FirstHalf,Start,Successful,Angle,N
101 one,5.3,410988,08/14/2010,Aston Villa,West Ham,3 : 0,3,0, 157
EventTypes=90 EventLabels=midThird EventID=3 Player_ID=4511 ExpandedMinute=0 Second=5 TeamID=24 EndY=48.5 EndX=51.1 Y=52.2 X=49.4
IsTouch=True ID=1394118243 Minute=0 Period=FirstHalf Type=Start OutcomeType=Successful Area1=Angle Area2=None ParamVal1=5.3
ParamVal2=None MatchID=410988 MatchDate=. HomeTeamName=Aston Villa AwayTeamName=West Ham FTScore=3 : 0 HomeScore=3 AwayScore=0
_ERROR_=1
_INFILE_=90,midThird,3,4511,0,5,24,48.5,51.1,52.2,49.4,True,1394118243.0,0,FirstHalf,Start,Successful,Angle,None,5.3,410988,08/14/201
0,Aston Villa,West Ham,3 : 0,3,0, _N_=5
問題の原因となっている値の例を掲載してください。 SASは 'DDMMYY10 '情報を使って' 30/12/2015'と '30-12-2015'の両方を楽しく読んでください。 – Tom
私は、返信ありがとうございます。生データの行とジョブログを表示するように変更しました。 – gdogg371
カレンダーの第14月の8日目はありません。 ANYDTDTEを使用してみてください。代わりに自動的に8月14日にそれを変換するinformat代わりに。しかし、残りのデータラインがDDMMYYインフォーマットで動作する場合は、より大きな問題があると思います。 – Tom