僅操縱列數據一次你好!
我有一個問題,我將一列數據(一堆Max Currents)乘以100來獲得Max Current Densities,所以當我運行腳本時它做得很好:
柱 ( 13 ) << 設定值 ( ( 柱 ( 13 ) << 得到矩陣 ) * 100 ) ;
柱 ( 13 ) << 設定名稱 ( “Max Jc(mA / um ^ 2)” ) ;
但是,如果我多次運行腳本,它會將數據乘以100,我必須關閉數據表並重新打開它。
有沒有辦法讓它只更新一次?
謝謝,
泰勒
Re:只處理一次列數據基於 @pmroz 的輸入,你想要改變你的代碼如下:
//define columns to search for
colSearch1 = "Corrected Area";
colSearch2 = "Max Ic";
// Get Column Names from the data table
ColNames = dt << Get Column Names("string");
//search for desired columns
colNum1 = Contains(ColNames,colSearch1);
colNum2 = Contains(ColNames,colSearch2); 現在您可以根據需要參考colNum1和colNum2。或者喜歡 @pmroz 解釋說:
Col1 = column(dt,"Corrected Area") ;
Col2 = column(dt,"Max Ic") ;
Re:只處理一次列數據您只需要獲取一次列名。 這會將列名加載到列表中。
但您也可以使用其名稱直接引用列:
專欄(dt,“ 最大Ic(mA)“) 是一個可接受的結構。
Re:只處理一次列數據所以我必須閱讀兩篇專欄文章,我最終將其用於a
簡單的雙變量分析:現在它不起作用!再次感謝所有人
幫助和指導!
//定義要搜索的列
colSearch1 =“更正區域”;
colSearch2 =“Max Ic”;
//獲取感興趣的列
Col1 = dt << *獲取列名稱(*“更正區域”*)*;
Col2 = dt << *獲取列名稱(*“Max Ic”*)*;
//搜索所需的列
colNum1 =包含*(* Col1,colSearch1 *)*;
colNum2 =包含*(* Col2,colSearch2 *)*;
// column(13)<< set values((Column(13)<< get as matrix)* 100);
// column(13)<< set name(“Max Jc(mA / um ^ 2)”);
Column1 = Column *(* dt,colNum1 *)* << * set values(* *(* Column1 << * get as
矩陣)* ** 100)*;
Column1 << * set name(*“Max Jc(mA / um ^ 2)”*)*;
Column2 = Column *(* dt,colNum2 *)*;
關閉*(* DT,保存*(文件路徑)); *
//調用CreateBivariate進行雙變量(兩變量)分析
status = List *(0 *,* 0)*;
新窗口*(*“自定義分析”,
H列錶框*(*
V列錶框*(*
面板盒*(*“控制”,
文本框*(*“選擇分析”*)*,
choice =複選框*({*“Distribution”,“Fit Line”*} *,
current = choice << * Get(1)*;
// xParam = Column(9);
// yParam = Column(13);
xParam = Column1;
yParam = Column2;
如果*(*和*(*當前,不*(*狀態* [** 1] * *)* *)*,
dt << *追加(*
dt = V列錶框*(*
bivDistribution =分佈*(*
Y *(* Eval *(* yParam *)* *)*,
X *(* Eval *(* xParam *)* *)*,
*)*;
*)*
Re:只處理一次列數據 @ tylerram93 ,
這應該做到這一點。
// Open Sample Data Table
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Define Column To Search For
ColToSearch = "age";
// Get Column Names
ColNames = dt << Get Column Names("String");
// Search if the desired column names exists
ColNum = Contains(ColNames,ColToSearch);
// Get Reference to desired Column
Col = Column(dt,ColNum);
// Alternatively
Col(ColNum) // Also refers to your desired column Re:只處理一次列數據這很完美!謝謝!
後續問題:
有沒有辦法根據他們的名字選擇列?因此,它不是使用Column(13),而是可以使用“Max Ic(mA)”搜索列
謝謝,
泰勒
Re:只處理一次列數據你好@ tylerram93:
解決這個問題的簡單方法是 - 確保在腳本結束時關閉表。只要您的原始數據是一致的,無論您運行腳本多少次並在最後保存並關閉它,如下所示 - 乘法應該只發生一次。
通過不關閉表,我會反復修改表。
如果 - 我誤解了你的問題 - 請粘貼測試數據集和測試腳本。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
column(4) << set values( (Column(4) << get as matrix) *100);
column(4) << set name("Max Jc (mA/um^2)");
Close(dt,Save(FilePath));
最好
烏代