在同一腳本中創建多個數據表大家好,
我正在嘗試在同一腳本中從創建的第一個數據表創建第二個數據表,這可能嗎?
例子:
dt_= 打開(path_pst);
//第一個數據表
開始=新表(“W”,
新列(“S”),
新列(“Z”),
新列(“X”),
新列(“Y”),
新列(“E”),
新列(“W”),
新列(“S”),
添加行(545)
);
//一些計算
對於(i=1,i<=545,i++,
W:B[i] = ((dt_ - dt_*60)/8;
W:S[i] = dt_[i];
W:X[i] = dt_[i]/10000000;
W:Y[i] = dt_[i]/10000000;
W:E[i] = dt_[i];
W:W[i] = dt_[i];
W:S[i] = dt_[i];
);
//創建第二個數據表
開始=新表(“WIWM”,
新專欄(“Si”),
新專欄(“Ba”),
新列(“X1”),
新列(“Y1”),
新專欄(“En”),
新專欄(“Wa”),
新列(“M”),
添加行(109)
);
//根據創建的第一個數據表計算第二個數據表
對於 (i=1, i<=109,i++,
WIWM:Ba[i] = (W:B[i+109]+W:B[i+218]+W:B[i+327]+W:B[i+436])/4;
WIWM:Si[i] = W:S[i];
WIWM:X1[i] = W:X[i];
WIWM:Y1[i] = W:Y[i];
WIWM:En[i] = W:E[i];
WIWM:Wa[i] = W:W[i];
);
在第一個數據表按預期出現後,第二個數據表出現預期的行數,但空白(表示條件未運行)。
如果我將分離腳本,那麼在第一部分中,我將執行第一個計算並保存它,在我將在保存的數據表上運行第二部分之後,我將為第二個數據表完成計算。
謝謝。
回复:在同一腳本中創建多個數據表https://community.jmp.com/t5/Uncharted/What-is-the-JSL-Matrix/ba-p/33349是一個簡單的介紹。 也有文檔:
http://www.jmp.com/support/help/Matrices.shtml
http://www.jmp.com/support/help/Matrix_Functions.shtml
回复:在同一腳本中創建多個數據表你可以給我一個例子嗎?
謝謝
回复:在同一腳本中創建多個數據表既然您正在使用矩陣,那麼我會問一個問題,為什麼要將數據放入數據表中,然後將數據表視為矩陣持有者?您在腳本中執行的所有步驟都可以使用矩陣在開放 JSL 中輕鬆、快速地完成。
回复:在同一腳本中創建多個數據表你好,
感謝您的快速重播。
是的,我正在使用矩陣,第一個是 n 列,545 行(我可以使用 col 數字函數,但它是為了讓你看到數字)
從第一個實際數據表中,我需要過濾並創建一個新的數據表 - “第一個”,也有 545 行和矩陣。
之後,我需要從“第一個”開始執行另一次計算,最終得到包含 109 行和 martix 的“第二個”。
謝謝。
回复:在同一腳本中創建多個數據表謝謝吉姆。 我將其添加到要進一步調查的事項列表中...像您一樣,我不知道有類似的事情。
回复:在同一腳本中創建多個數據表你的劇本教會了我一些新東西。我找不到它的任何文檔,但你的腳本顯示它可以工作......有點。
在您的代碼中,您通過以下方式引用數據表中的行和列
數據表名:列名[行]
所以當你指定
開始=新表(“W”,新列(“S”),.......
您將“5”行中的“S”列引用為
寬:S[5]
顯然這有效。但是,稍後在腳本中,您嘗試對您命名的數據表使用相同的邏輯
開始=新表(“WIWM”,新列(“Si”).........
並且您嘗試引用回名為 W 的數據表
WIWM:SI[1] = W:S[1];
但這是行不通的。
問題是,設置數據表命名空間引用的正確方法是使用賦值語句分配命名空間名稱,而不是數據表名稱。我的新認識是,顯然 JMP 會使用數據表名稱作為名稱空間,直到創建新的數據表,然後它會丟失數據表名稱名稱空間鏈接。
最重要的是,如果您更改該行,您的代碼將正常工作
開始=新表(“W”,
到
W = 新表("W",
和
開始=新表(“WIWM”,
到
WIWM = 新表("WIWM",
最後,打開某種文件並將其引用為
dt_ = 打開(path_pst);
你要打開的是什麼?我假設它是一個矩陣。您能否就此問題回复我,以便我可以更好地了解您的代碼中到底發生了什麼。
回复:在同一腳本中創建多個數據表使用數據表目的由NewTable返回功能告訴變量在哪個表中。 桌子上的姓名不用於變量的範圍。 第三個作業使用所有三個表。 我對所有內容都進行了唯一命名,但這對於範圍界定來說不是必需的。 dt3: ,例如,設置範圍,或查找後面的變量 z(在此示例中)的位置。
dt1 = New Table( "table name A", New Column( "x", values( [1 2 3] ) ) );
dt2 = New Table( "table name Squares", New Column( "y" ), addrows( 3 ) );
dt3 = New Table( "table name Cubes", New Column( "z" ), addrows( 3 ) );
For( i = 1, i <= N Rows( dt1 ), i++,
dt2:y[i] = dt1:x[i] ^ 2;
dt3:z[i] = dt1:x[i] * dt2:y[i];
);
small table of Cubessmall table of Cubes小立方體表