如何將新列添加到所有數據表我進行了一系列實驗,這些實驗產生了一個以樣本名稱為標題的結果文本文件。
我有一個腳本,它採用數據表標題並用標題填充一個新的“樣本名稱”列。
dt = current data table();
name = dt << get name;
new column("Sample Name");
column(dt,"Sample Name")[1]=name;<BR />
nr = N Rows( dt );
For( ii = 2, ii <= nr, ii++,
If( is missing(Column( dt, "Sample Name" )[ii]),
Column(dt, "Sample Name" )[ii] = Column( dt, "Sample Name" )[ii - 1]
);
);一次進行數十次甚至數百次的實驗。 是否可以對我的腳本進行修改以使其在所有打開的數據表上運行,以便我可以連接所有結果並繼續自動化分析?
腳本回复:如何向所有數據表添加新列感謝您的答复。
運行此腳本時出現錯誤

回复:如何向所有數據表添加新列您很可能使用的是舊版本的 JMP(JMP16 中引入了 For Each)。 簡單的解決方法是用 For 循環替換它(也修復了代碼上的一個錯字):
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp"); // open for demo purposes
Open("$SAMPLE_DATA/Big Class Families.jmp"); // open extra table for demo purposes
new_col_name = "Sample Name";
dt_list = Get Data Table List();
For(i = 1, i <= N Items(dt_list), i++,
dt_cur = dt_list[i];
name = dt_cur << get name;
If(!Contains(dt_cur << Get Column Names("String"), new_col_name),
dt_cur << New Column(new_col_name, Character, Nominal, << Set Each Value(name));
);
);
回复:如何向所有數據表添加新列您是否要向每個名為“Sample Name”的表添加新列,並且它將僅包含該特定數據表的名稱?
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp"); // open for demo purposes
Open("$SAMPLE_DATA/Big Class Families.jmp"); // open extra table for demo purposes
new_col_name = "Sample Name";
For Each({dt_cur}, Get Data Table List(),
name = dt_cur << get name;
If(!Contains(dt_cur << Get Column Names("String"), new_col_name),
dt_cur << New Column(new_col_name, Character, Nominal, << Set Each Value(name));
);
);

回复:如何向所有數據表添加新列如果您只需要每個表名用於連接,為什麼不讓連接來完成這項工作,它有一個用於此目的的選項? 請參閱腳本索引或幫助。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Trial1.jmp" );
dt2 = Open( "$SAMPLE_DATA/Trial2.jmp" );
dt << Concatenate(
Output Table( "Result Table with Source" ),
Data Table( "Trial2" ),
Create Source Column
);