以下のコードの何が問題になっていますか以下のコードでエラーが発生しました:
dt << New Column( "Stage",
If( Formula( Substr( :Column 9, 1, 2 ) ) == "CP",
Formula( Left( :Column 9, 3 ) ),
" "
)
);
生の列 9 のほかに「Stage」という名前の新しい列を追加したいのですが、CP で始まる場合は最初の 3 文字を取得し、それ以外の場合は空白にしますが、エラーが発生しました
入力が予期せず終了しました。 「,」または「)」が欠落している可能性があります。
関数「新しい列」の引数を解析しようとしています。
行 207 列 3: ►
私はフォーミュラを間違った方法で使用していると思われます。ここで助けが必要かもしれません:)
| コラム9 |
ステージ |
| NG |
|
| CP2-NAVI12 |
CP2 |
| CP1-NAVI12 |
CP1 |
| NG |
|
| CP2-NAVI12 |
CP2 |
Re: 以下のコードの何が問題になっていますかありがとうジム、わかった:)Re: 以下のコードの何が問題になっていますかコードの問題は、New Column 関数の Formula 要素を理解していないことです。Substr() や Left() などの関数を持つスクリプト行内の各セグメントに、それが式であることを伝える必要があると考えて、問題に近づいているようです。実際には、jsl の全行:
If( Substr( :Column 9, 1, 2 ) == "CP", Left( :Column 9, 3 ), "" )
新しい列の数式として宣言する必要があるものです。したがって、New Column() 関数は次のように指定する必要があります。
dt << New Column( "Stage",
Character,
"Nominal",
Formula( If( Substr( :Column 9, 1, 2 ) == "CP", Left( :Column 9, 3 ), "" ) )
);