可変数の列の接頭辞による列スタックのスクリプトデータテーブルとしてExcelから自分のデータをインポートし、列名の接頭辞に基づいて私の列を積み重ねる一般的なスクリプトを作成しようとしています。私はそれが異なったデータセットに適用されることを望みます(同時にではない - ただすべてに適用することができるただの一般的なスクリプト)。それぞれのデータ列は以下のようにリストされます:S01 Vol Density(%) )、S02 体積密度(%)、S03体積密度(%)... Sn Vol密度(nは任意の整数)
これを行う方法は、列をプレフィックスでグループ化してからグループを積み重ねることであると考えていますが、これを進める方法がわからないのですが。
これが理にかなっていることを願っています - それでもスクリプティングにとって初めてのことです。
NBデータのインポートは問題ではなく、スタッキングだけです。
再:可変数の列の接頭辞による列スタックのスクリプトはい、これはあなたがそうすることができる方法です:
For( i = 1, i <= N Col( dt ), i++,
temp_name = Column( dt, i ) << Get Name;
If( Contains( temp_name, "Vol Density" ) > 0,
Column( dt, i ) << Set Name( Word( 1, temp_name ) )
);
);
再:可変数の列の接頭辞による列スタックのスクリプトありがとうございます。私はそれから(スクリプトで)接頭辞だけが残るように(スクリプトで)カラムを書き直すことを望むならばそれはそれだけでS01、S02などを読む、これはスタックと同じようなやり方でされることができる?再:可変数の列の接頭辞による列スタックのスクリプトこんにちは @nhun 、
コミュニティへようこそ!
これは、ほんの少しのコードで簡単に実行できます。 これは、列名をループして、一致する部分文字列を持つものをStackで使用できるリストに挿入する方法の1つです。 Sample Data LibraryのThicknessデータセットを使います。
dt = Open("$SAMPLE_DATA/Quality Control/Thickness.jmp");
stack_cols = {}; //list to hold the names of columns I want to stack
str_match = "Thickness"; //Substring in column name I want to find
names = dt << Get Column Names;
for(i=1,i<=N Items(names),i++,
If(Contains(char(names[i]),str_match) > 0,
Insert Into(stack_cols, names[i])
)
);
dt << Stack(
columns(stack_cols),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);あなただけのdtをあなた自身のテーブルとstr_match = "Vol Density"に置き換える必要があるでしょう