JSLを使用して複数の列名からプレフィックスを削除するにはどうすればよいですか?わかりました。JMPのドキュメントがわかりません。 良い例が不足しています。
プレフィックス付きで列名が作成されたJMPファイルの列の名前を変更しようとしています。 すべての列名は「pre」で始まり、列名からその文字列を削除したいと思います。
ループ内で、SHOWステートメントを使用してすべての列名を抽出して表示することができました。 使った
OldName =(列名(i));
ここで、iはループ変数です。
私がする必要があるのは次のようなものだけのようです
substr(OldName、4、Length(OldName)-3)
しかし、それを使用すると、あらゆる種類のエラーが発生します。 たとえば、長さ関数は機能しません。
私は何を間違っているのですか? ロジックはとても単純ですが、JMPスクリプト言語は私を殺しています。
Re:スクリプト内の列の名前を変更するまたは、setとgetnameの両方を使用するこれ:
Re:スクリプト内の列の名前を変更するまたは、この単一行ソリューション:
Re:スクリプト内の列の名前を変更するまたは、
OldName = Char(列名(i));
その場合、Substr()内にExpr()は必要ありません。
Char()(またはexpr)なしで機能しない理由は、列name()が引用符で囲まれた文字列ではなく、名前の値を返すためです。 詳細については、スクリプトガイド(「列名の取得」p。121、JMP 9の下)を参照してください。
メッセージの編集者:MSRe:スクリプト内の列の名前を変更するそれはうまくいきました! ありがとう!Re:スクリプト内の列の名前を変更するそれが機能する*理由*はわかりませんが、OldNameをexpr(OldName)に置き換えると、次のように機能します。
dt =現在のデータテーブル();
i = 1;
OldName =(列名(i));
newvar = Substr(expr(OldName)、4、Length(expr(OldName))-3);
show(newvar);