Re: 列の文字列を検索し、2 列目の数値をコピーします学習する機能の例を次に示します。
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 ];
);
Re: 列の文字列を検索し、2 列目の数値をコピーしますその間@マークベイリー連想配列を使用するという提案は機能しますが、単純な Join でおそらく問題が解決すると思います。
- 10,000 行の JMP テーブルを開く
- ExcelファイルをJMPで開く
- Excel の JMP テーブルをベース テーブルとして使用し、
- テーブル==>名前を一致させるために更新し、年齢をベーステーブルに追加します
- 更新されたテーブルを Excel ファイルとして保存し直します
ドキュメント「Discovering JMP」と「Using JMP」を読むことをお勧めします。
ヘルプ==>JMP ドキュメント ライブラリ
Re: 列の文字列を検索し、2 列目の数値をコピーしますハイマーク、
提案をありがとう。 私は JMP を初めて使用しますが、どうすれば開始できるか教えていただけますか?
Re: 列の文字列を検索し、2 列目の数値をコピーしますこの場合、名前と年齢を含む Excel ワークブックをインポートし、それらを連想配列に読み込んで検索するのがよいでしょう。
Re: 列の文字列を検索し、2 列目の数値をコピーしますTxnelson さん、こんにちは。
JMP ファイルには 10,000 行と 2 列があります。 1 列目の名前は Person で、2 列目は age です。 はい、データテーブル t を見つけるために使用できますhat は、Excel スプレッドシートで特定の名前の年齢を持っています。
JMP データ ファイルには、異なる名前と年齢 (文字列と数値) を持つ 10,000 行があります。
JMPデータファイルには人物名と年齢の両方が記載されています。
2列500行のExcelファイルがあり、1列目には人の名前があり、2列目には年齢が含まれています。 JMP データ ファイルから Excel の 500 個のデータ (個人名) をすべて検索し、その個人名に対応する年齢値を Excel ファイルにコピーするスクリプトを作成しようとしています。
Re: 列の文字列を検索し、2 列目の数値をコピーします10,000 個の JMP データ テーブルがあります....正しいですか?データ テーブル名は何ですか?これを使用して、Excel スプレッドシートで特定の名前の年齢を持つデータ テーブルを見つける方法を判断できますか?
正しい JMP データ テーブルが見つかったら、10,000 個の JMP データ テーブルに含まれるデータと、そのデータ テーブルから年齢を取得する方法を教えてください。
問題を解決しようとする前に、より詳細な情報が必要です。
Re: 列の文字列を検索し、2 列目の数値をコピーしますはい、それが最も簡単な方法ですが、問題は、JMP データ ファイルに異なる名前の 10000 データ セットがあり、Excel シートに jmp ファイルの 10000 データ セットからランダムに 500 個の名前があることです。 だから私はそれらの特定の名前をExcelで検索し、jmpデータファイルから過去の年齢を検索できるものが欲しい
Re: 列の文字列を検索し、2 列目の数値をコピーします500 人の名前のリストが JMP データ テーブルにあり、名前と年齢を含む csv ファイルがあると仮定すると、csv ファイルを簡単に入力して、
テーブル==>結合
名前/年齢データ テーブルを、500 人の名前のリストを含むテーブルに一致させます。
Re: 列の文字列を検索し、2 列目の数値をコピーしますハイマーク、
同様のタスクがありますが、私の「キー」は連続データ型です。
Excel では、ルックアップ テーブルを作成し、それを使用して非常に非線形な特性を変換するのは非常に簡単です。
この場合、充電状態 (SoC) の推定に対するバッテリ電圧データであり、その逆も同様です。 そのため、たとえば、測定された電圧データを含むデータテーブルをSoCの見積もりに変換したいと思います。 課題の 1 つは、ルックアップ テーブルにデータ内に存在する多くの電圧レベルがすべて含まれる場合と含まれない場合があるため、最も近い電圧レベルに対応する SoC が必要になることです。 たとえば、電圧データは 3.801 V で、ルックアップ テーブルには最も近いものとして 3.800 V があり、対応する SoC は 51% です。
時々、私の仕事は「逆方向」(SoC => 電圧) を変換することですが、うまくいけば、良いインスピレーションを与えられた自分でそのソリューションを作成できます;)
BR、キム。
Re: 列の文字列を検索し、2 列目の数値をコピーしますあなたが何をしたいのか(基本的に最小距離で結合する)を正しく理解していれば、これを行う方法がかなりあります(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);
Re: 列の文字列を検索し、2 列目の数値をコピーしますinterpolate( ) も良い選択です。
列の文字列を検索し、2列目の数値をコピーします2 つの列で構成される Excel ワークシートがあり、1 つの列には人の名前を含む文字列が含まれ、もう 1 つの列にはその人の年齢が含まれます。 私には500人近い人のリストがあります。 スクリプトを使用して人の名前に基づいて年齢を割り当てるなど、自動化する方法はありますか?
自動化とスクリプト作成