SPSS マクロは初めてで、変数で指定されたパスから CSV ファイルを開こうとしています。
すべての変数設定をファイルの先頭に設定したいので、別の名前の別のファイルをインポートすることを簡単に決定できることに注意してください。
これは私のコードです:
/* settings */
define !SYMB() "VIX". !enddefine.
define !CSVFILE() "E:\Downloads\$" + !SYMB + ".csv". !enddefine.
/* import csv file */
GET DATA
/TYPE=TXT
/FILE=!CSVFILE
/DELCASE=LINE
/DELIMITERS=","
/ARRANGEMENT=DELIMITED
/FIRSTCASE=1
/IMPORTCASE=ALL
/VARIABLES=
V1 5X
Date ADATE10
!SYMB + 'O' F7.2
!SYMB + 'H' F7.2
!SYMB + 'L' F7.2
!SYMB + 'C' F7.2.
CACHE.
EXECUTE.
DATASET NAME "DataSet" + !SYMB WINDOW=FRONT.
残念ながら、次のエラーが発生します。
/* 設定 */ !SYMB() "VIX" を定義します。!enddefine. !CSVFILE() "E:\Downloads\$" + !SYMB + ".csv" を定義します。!enddefine.
列 13 の警告 # 207。テキスト: E:\Downloads\$ テキスト文字列の後に継続を示す「+」が見つかりましたが、次の非空白文字は引用符またはアポストロフィではありませんでした。
/* csv ファイルをインポート */ GET DATA /TYPE=TXT /FILE=!CSVFILE
エラー。コマンド名: GET DATA (2256) 無効なサブコマンド: FILE このコマンドの実行は停止します。
エラー # 1. コマンド名: + 行の最初の単語が SPSS Statistics コマンドとして認識されません。このコマンドの実行は停止します。/DELCASE=行
エラー # 1. コマンド名: /DELCASE 行の最初の単語が SPSS Statistics コマンドとして認識されません。このコマンドの実行は停止します。/DELIMITERS="," /ARRANGEMENT=DELIMITED /FIRSTCASE=1 /IMPORTCASE=ALL /VARIABLES= V1 5X 日付 ADATE10 !SYMB + 'O' F7.2
エラー # 1. コマンド名: + 行の最初の単語が SPSS Statistics コマンドとして認識されません。このコマンドの実行は停止します。!SYMB + 'H' F7.2
エラー # 1. コマンド名: + 行の最初の単語が SPSS Statistics コマンドとして認識されません。このコマンドの実行は停止します。!SYMB + 'L' F7.2
エラー # 1. コマンド名: + 行の最初の単語が SPSS Statistics コマンドとして認識されません。このコマンドの実行は停止します。!SYMB + 'C' F7.2.
エラー # 1. コマンド名: + 行の最初の単語が SPSS Statistics コマンドとして認識されません。このコマンドの実行は停止します。キャッシュ。実行する。
エラー # 105。 コマンド名: EXECUTE このコマンドは、作業ファイルが定義される前には有効ではありません。このコマンドの実行は停止します。データセット名 "DataSet" + !SYMB WINDOW=FRONT.
これをどのように行う必要がありますか?
提案されたマクロの出力:
/* settings */
define !SYMB() "VIX" !enddefine.
define !CSVFILE() !quo(!con("E:\Downloads\$", !unq(!eva(!SYMB)), ".csv")) !enddefine.
define !c(str1 = !tok(1) /str2 = !tok(1)) !con(!unq(str1), !unq(str2)) !end.
define !cq(str1 = !tok(1) /str2 = !tok(1)) !quo(!con(!unq(str1), !unq(str2))) !end.
/* import csv file */
GET DATA
/TYPE=TXT
/FILE=!CSVFILE /DELCASE=LINE
/DELIMITERS=","
/ARRANGEMENT=DELIMITED
/FIRSTCASE=1
/IMPORTCASE=ALL
/VARIABLES=
V1 5X
Date ADATE10
!c !str1=!SYMB str2="O" F7.2
>Warning # 210 in column 2. Text: !str1
>A macro symbol is invalid in this context.
>The symbol will be treated as an invalid special character.
!c !str1=!SYMB str2="H" F7.2
>Warning # 210 in column 2. Text: !str1
>A macro symbol is invalid in this context.
>The symbol will be treated as an invalid special character.
!c !str1=!SYMB str2="L" F7.2
>Warning # 210 in column 2. Text: !str1
>A macro symbol is invalid in this context.
>The symbol will be treated as an invalid special character.
!c !str1=!SYMB str2="C" F7.2.
>Warning # 210 in column 2. Text: !str1
>A macro symbol is invalid in this context.
>The symbol will be treated as an invalid special character.
>Error. Command name: GET DATA
>(2265) Unrecognized or invalid variable format. The format is invalid. For
>numeric formats, the width or decimals value may be invalid.
>Execution of this command stops.
CACHE.
EXECUTE.
>Error # 105. Command name: EXECUTE
>This command is not valid before a working file has been defined.
>Execution of this command stops.
DATASET NAME !cq !str1="DataSet" !str2=!SYMB WINDOW=FRONT.
テスト出力:
set err=off.
set mpr=on.
set printback=on.
11 0 M> set printback=on.
12 0 M>
!c str1="A" str2="B".
13 0 M> !c str1="A" str2="B".
!cq str1="A" str2="B".
14 0 M> !cq str1="A" str2="B".
15 0 M>
set printback=off.
16 0 M> set printback=off.