回复:搜索列中的字符串並複制第二列中的數值這是一個可以學習的功能示例:
Names Default to Here( 1 );
// open reference data table
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// make container for lookup
lookup = Associative Array();
// get names and ages for lookup
For Each Row(
Insert Into( lookup, dt:name, dt:age );
);
Close( dt, No Save );
// open new table (use Big Class again, delete existing age column)
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Delete Columns( :age );
// make new age column and populate it using lookup table
dt << New Column( "new age", "Numeric", "Continuous" );
For Each Row(
:new age = lookup[ :name ];
);
回复:搜索列中的字符串並複制第二列中的數值儘管@馬克貝利使用關聯數組的建議會起作用,我相信一個簡單的 Join 可能會解決問題。
- 打開包含 10,000 行的 JMP 表
- 在 JMP 中打開 Excel 文件
- 使用 Excel 中的 JMP 表作為基表,使用
- 表==>更新以匹配名稱並將年齡添加到基表
- 將更新後的表格另存為 Excel 文件
我建議您花時間閱讀文檔“發現 JMP”和“使用 JMP”
幫助==>JMP 文檔庫
回复:搜索列中的字符串並複制第二列中的數值嗨,馬克,
感謝您的建議。 我是 JMP 的新手,您能建議我如何開始嗎?
回复:搜索列中的字符串並複制第二列中的數值在這種情況下,可以導入包含姓名和年齡的 Excel 工作簿,然後將它們加載到關聯數組中進行查找。
回复:搜索列中的字符串並複制第二列中的數值嗨特克斯尼爾森,
JMP 文件有 10,000 行和 2 列。 第一列名稱是 Person,第二列名稱是 age。 是的,它可以用來查找數據表 t帽子在 Excel 電子表格中具有給定名稱的年齡。
JMP 數據文件有 10,000 行,具有不同的名稱和年齡(字符串和數字)
人名和年齡都列在 JMP 數據文件中。
我有一個包含兩列和 500 行的 excel 文件,第一列包含人名,第二列包含年齡。 我正在嘗試編寫一個腳本,該腳本將從 JMP 數據文件中的 excel 中查找所有 500 個數據(人名),並在 excel 文件中復制與人名對應的年齡值。
回复:搜索列中的字符串並複制第二列中的數值您有 10,000 個 JMP 數據表……對嗎?數據表名稱是什麼?是否可以用於確定如何在 Excel 電子表格中查找具有給定名稱年齡的數據表?
你能提供一下10,000個JMP數據表中有哪些數據嗎,一旦找到正確的JMP數據表,你如何從數據表中獲取年齡?
在嘗試解決您的問題之前,確實需要更多細節。
回复:搜索列中的字符串並複制第二列中的數值是的,這是最簡單的方法,但問題是 JMP 數據文件有 10000 個不同名稱的數據集,而 Excel 工作表有來自 10000 個 jmp 文件數據集的隨機 500 個名稱。 所以我想要一些可以在 excel 中搜索那些特定名稱並從 jmp 數據文件中搜索年齡的東西
回复:搜索列中的字符串並複制第二列中的數值假設 500 個名字的列表在 JMP 數據表中,並且您有包含姓名和年齡的 csv 文件,您可以輕鬆輸入 csv 文件,然後使用
表==>加入
將姓名/年齡數據表與包含 500 個姓名的列表相匹配。
回复:搜索列中的字符串並複制第二列中的數值嗨,馬克,
我有類似的任務,但我的“關鍵”是連續數據類型。
在 Excel 中,創建查找表並使用它來轉換高度非線性特徵非常容易。
在這種情況下,電池電壓數據用於估計充電狀態 (SoC),反之亦然。 因此,我想將例如帶有測量電壓數據的數據表轉換為 SoC 估計值。 一個挑戰是我的查找表可能/不會包含數據中存在的所有電壓電平,因此我需要與最近的電壓電平對應的 SoC。 例如,電壓數據為 3.801 V,查找表中最接近的是 3.800 V,相應的 SoC 為 51%。
有時我的任務是“向後”轉換(SoC => 電壓),但希望我能在良好的啟發下自行創建該解決方案;)
BR,金。
回复:搜索列中的字符串並複制第二列中的數值如果我正確理解你想做什麼(基本上是按最小距離加入),有很多方法可以做到這一點(kdtable、vptree、loc、distance、addins,...)。 下面是一個例子
Names Default To Here(1);
dt_lookup = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([3.8, 4.8, 4])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([50, 52, 51]))
);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([3.801, 4.801, 4.000, 3.7, 4.802, 4.799]))
);
lookup_values = Column(dt_lookup, "Column 2") << get values;
search_values = Column(dt_lookup, "Column 1") << get values;
dt << New Column("Column 2", Numeric, Continuous, << Set Each Value(
As Constant(tab = KDTable(search_values););
{rows, dist} = tab << K nearest rows(1, Matrix(:Column 1));
lookup_values[rows[1]];
));
以下是使用矩陣的其他選項的一些演示
Names Default To Here(1);
lookup_values = [50, 52, 51];
search_values = [3.8, 4.8, 4];
search_val = 4.3;
// These should return row from dt_lookup
kdt = KDTable(search_values);
{kd_rows, kd_dist} = kdt << K nearest rows(1, Matrix(search_val));
vpt = VPTree(search_values);
{vp_rows, vp_dist} = vpt << K nearest rows(1, Matrix(search_val));
dist = Distance(search_values, Matrix(search_val));
lmin_dist = LocMin(dist);
abs_calc = Abs(search_values - search_val);
lmin_abs = LocMin(abs_calc);
show(dist, lmin_dist, abs_calc, lmin_abs, kd_rows, kd_dist, vp_rows, vp_dist);
回复:搜索列中的字符串並複制第二列中的數值interpolate( ) 也是一個不錯的選擇。
搜索列中的字符串並複制第二列中的數值我有一個由兩列組成的 Excel 工作表,一列包含帶有人名的字符串,另一列包含該人的年齡。 我有一份幾乎有 500 人的名單。 有什麼方法可以自動化它嗎?比如使用腳本根據人名分配年齡?
自動化和腳本編寫