我可以創建鏈接匯總表嗎?大家好,
如果我試圖做一些不適合 JMP 的事情,我深表歉意,但我試圖利用 JMP 作為數據庫來存儲大量材料屬性數據。我使用單獨的 JMP 表來可視化/分析數據,但會有一些數據用戶想要拉出一個材料匯總表,以捕獲我測量的不同屬性的平均值/標準偏差。
例如,假設我有一個(過度簡化的)表,名為“材料數據庫 - 物理數據”:
| 材料 | 狀況 | 物業A | 物業B |
| 木頭 | 新的 | 100 | 5042 |
| 木頭 | 新的 | 97 | 6005 |
| 木頭 | 新的 | 113 | 5532 |
| 木頭 | 水後實驗 | 76 | 3680 |
| 木頭 | 水後實驗 | 45 | 4032 |
| 木頭 | 水後實驗 | 68 | 2599 |
| 稻草 | 新的 | 33 | 1107 |
| 稻草 | 新的 | 21 | 958 |
| 稻草 | 新的 | 16 | 1327 |
| 稻草 | 水後實驗 | 10 | 280 |
| 稻草 | 水後實驗 | 7 | 332 |
| 稻草 | 水後實驗 | 11 | 399 |
我真的很想擁有一個名為“材料數據庫 - 主匯總表”的表格,該表格鏈接到該表格和其他類似表格。材料列將共享相同的 ID,但我可以讓每個表對於給定的材料 ID 和條件可能有不同的行數,具體取決於測試的重複次數。這是我希望匯總表的樣子:
| 材料 | 均值(屬性 A)- 新 | StDev(物業 B)- 新 | 平均值(屬性 A) - 水後 | StDev(物業 A) - 水後 | 均值(屬性 B)- 新 | StDev(物業 B)- 新 | 平均值(屬性 B) - 加水後 | StDev(物業 B) - 水後 |
| 木頭 | 103 | 9 | 63 | 16 | 5526 | 482 | 3437 | 747 |
| 稻草 | 23 | 9 | 9 | 2 | 1131 | 186 | 337 | 60 |
我想我正在尋找一個腳本來放置在給定的列中,以便在我們收集更多材料時,我會添加新材料的行,並根據我繼續測量的不同屬性添加適當的列。我充其量只是一個 JMP 新手,所以雖然我已經能夠計算出類似於以下變化的一組行數的均值或標準差: If( Modulo( Row(), 3 ) == 1, Col Mean( :Property A, Ceiling( Row() / 3 ) )) 多虧了這裡的前一篇文章,然後我必須從中創建一個子表,這樣我就可以為每種材料創建一行,以便我可以使用鏈接 ID跨不同表格的材料列,並結合所有這些計算的平均值/標準偏差。
這真的是我最好的選擇嗎?感謝您的任何建議!
數據表腳本編寫回复:我可以創建鏈接匯總表嗎?我建議創建一個包含所有可能的材料及其屬性的材料數據庫文件。 然後您可以使用匯總平台從中獲取許多不同的統計數據,並且數據將被正確分組。


我什至不太可能保存這個匯總表,因為它在需要時很容易創建。
在您更加習慣 JMP 和 JSL 之後,您可以創建一個腳本,用戶可以使用該腳本在運行時獲取此匯總表(如果您必須擁有單獨的數據表,您可以在創建匯總表之前將它們連接起來)。
歡迎來到社區,希望這能提供一些想法!
回复:我可以創建鏈接匯總表嗎?JMP 可以從本地提取(但不能推送到)SQLite 數據庫 (.db) 文件。它們真的很容易使用。
例如。只需將此 db 文件拖到 JMP 中即可。或者隨心所欲地打開它。
您也可以輕鬆編寫腳本。
New SQL Query(
Connection( "SQLite:Database=$DESKTOP/chinook.db" ),
QueryName( "Fun" ),
CustomSQL("SELECT t1.Title, t2.Name
FROM albums t1
LEFT OUTER JOIN artists t2
ON t1.ArtistId = t2.ArtistId"),
/*
//OR instead of CUSTOM SQL
Select( Column( "Title", "t1" ), Column( "Name", "t2" ) ),
From(
Table( "albums", Alias( "t1" ) ),
Table(
"artists",
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "ArtistId", "t2" ), Column( "ArtistId", "t1" ) )
)
)
)
*/
) << Run
我可能落後於時代,但我不採用上述方法的原因是因為我看到人們試圖拉出“主匯總表”,這些表在慢速 VPN 上可能會變得非常大,而且需要 20 分鐘查詢單行,因為他們必須先打開整個表。