如何計算上面最後一行不為空的間隔?用圖中這樣的例子:
謝謝!

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[2::8,"height"]="";
dt[10::17,"height"]="";
dt[19::28,"height"]="";
dt[30::39,"height"]="";
New Column("new",Character,"Nominal",Width(5));腳本回复:如何計算上面最後一行不為空的間隔?將列數據移動到矩陣中是一件簡單的事情,然後以您希望新列的格式生成新矩陣,然後一旦完成,將矩陣移動到數據表中。 所有矩陣操作都將在內存中完成。回复:如何計算上面最後一行不為空的間隔?謝謝!
回复:如何計算上面最後一行不為空的間隔?我想添加另一列“new2”以使其進入下一個排位賽間隔。

如何同時計算和打印兩列(“new”,“new2”)?像VBA數組一樣,在內存中um操作,一次輸出到表中。
謝謝!
回复:如何計算上面最後一行不為空的間隔?謝謝吉姆!
我使用 VBA 並經常編寫循環來完成我自己的項目。
我經常使用超過幾百萬行的數據。速度是一個關鍵問題。
我覺得 JMP 更快。
回复:如何計算上面最後一行不為空的間隔?Excel 與包括 JMP 在內的許多語言一樣,都有自己獨特的編碼快捷方式。其中一些在許多語言中得到了更廣泛的使用,但大多數只是在它們自己的語言中保留為獨特的語法。JMP 中的此類語法項都包含在腳本指南中。
這是另一種計算方法。它在小型數據表上運行良好,但對於大量行會變得昂貴。
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[2 :: 8, "height"] = "";
dt[10 :: 17, "height"] = "";
dt[19 :: 28, "height"] = "";
dt[30 :: 39, "height"] = "";
New Column( "new",
formula(
If( Is Missing( :height ) == 0,
curRow = Row();
x = curRow - Max( Current Data Table() << get rows where( Row() < curRow & Is Missing( :height ) == 0 ) );
,
x = .
);
x;
)
)
回复:如何計算上面最後一行不為空的間隔?我提供的公式還不夠嗎?
回复:如何計算上面最後一行不為空的間隔?我只是在使用這個處理過的“大類。 JMP”數據來說明:
如果某行的高度列不為空,求該行上方高度列數據的最後一行非空行數的區間。
例如dt[18,"height"]不為空,第18行最前面的最後一個非空行是DT[9,"height"]。所以dt[18,"new"]返回:18 - 9 = 9
謝謝!回复:如何計算上面最後一行不為空的間隔?你期望這個公式的結果是什麼?
回复:如何計算上面最後一行不為空的間隔?“>0”等參數在 JMP 中不起作用,但在 excel 中有效。
Contains(:[Index(1,Row())],">0",-1)
Contains(:[Index(1,Row())],!is Missing(:),-1)
回复:如何計算上面最後一行不為空的間隔?謝謝吉姆!
我一直用Excel,這些簡單的數據處理很容易。
我不想通過Excel處理數據然後使用一個使用JMP的專業模塊。相反,使用 JMP 來處理所有這些。
我覺得JMP用這個公式就可以搞定。但是知道怎麼寫
Contains(:[Index(1,Row())],,-1)
回复:如何計算上面最後一行不為空的間隔?- 我認為您不希望名為“New”的新列成為字符列,也不希望它成為“Nominal”,因此我根據這些假設編寫了公式。
- 您似乎在與 JMP 公式的概念作鬥爭。您的一些討論條目要求幫助解決一些相當簡單的問題。社區可以做些什麼來幫助您創建這些公式?
- 這是我的解決方案......其他人可能有不同或更好的方法
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[2 :: 8, "height"] = "";
dt[10 :: 17, "height"] = "";
dt[19 :: 28, "height"] = "";
dt[30 :: 39, "height"] = "";
New Column( "new",
formula(
If( Row() == 1, last = 0 );
If( Is Missing( :height ) == 0,
If( last == 0,
x = .;
last = Row();
,
x = Row() - last
);
last = Row();
,
x = .
);
x;
)
);