回复:搜索列中的字符串并复制第二列中的数值这是一个可供学习的功能示例:
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 人的名单。 有什么方法可以自动化它吗?比如使用脚本根据人名分配年龄?
自动化和脚本编写