JMP 腳本 - 如何更改“單元格”的值<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想知道如何編寫腳本來更改“單元格”的值,該值是腳本中計算的結果。
具體來說,如果計算的值為負數,我希望能夠將單元格的值更改為“0”,同時保留所有其他“單元格”。
即使它需要放在一個新列中,也沒關係。 例如,如果我有一列計算值,而我關心的值是負數,則創建一個新列,只為該“單元格”顯示“0”。
提前致謝。
回复:JMP 腳本 - 如何更改“單元格”的值一個班輪....
dt[dt<< 獲取行 where(:ageval < 14)] = 0;
回复:JMP 腳本 - 如何更改“單元格”的值對於這種情況,您可以使用“範圍檢查”列屬性。 這樣表就可以承載元數據,並且您不需要另一個表:
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Wait(2);
Column(dt, "age") << rangeCheck( !LT( 13 ) );
Column(dt, "weight") << rangeCheck( LT( 100 ) );回复:JMP 腳本 - 如何更改“單元格”的值您必須更改公式以檢查要更改的值,然後在公式中使用條件語句將其更改為您想要的值。
// Sample formula
:A + :B;
If( isMissing(:A+:B) == 1, 0 );
回复:JMP 腳本 - 如何更改“單元格”的值嗨吉姆,
如果您有 IF 命令中定義的“else”和第三個替代項,該腳本的形式是什麼?
最好的,
K
回复:JMP 腳本 - 如何更改“單元格”的值伊恩,
我喜歡矩陣方式,但是如果我想清理幾個清洗條件不同的列怎麼辦?
例如在大班
年齡 --> 將所有值 < 13 的單元格設置為空
height --> 將所有值 > 100 的單元格設置為空
假設我有一些所有列條件的參考表。
回复:JMP 腳本 - 如何更改“單元格”的值可以把公式貼出來嗎?作為特克斯尼爾森說你可以簡單地製作公式的檢查部分。
發佈公式:
1. 打開數據集並單擊公式列旁邊的 + 號。
2. 在公式窗口內雙擊。這將更改窗口以顯示公式的 JSL 代碼
3. 複製JSL代碼並將其發佈到本論壇。
新的公式將是這樣的:
tmp =放-原來的-公式-這裡;
如果( tmp < 0 , 0 , tmp ) ;
回复:JMP 腳本 - 如何更改“單元格”的值您當然可以將條件檢查作為公式的一部分
回复:JMP 腳本 - 如何更改“單元格”的值將測試作為公式的一部分有意義嗎?
如果(匹配( ... ) < 0 ,
0 ,
匹配( ... )
)
回复:JMP 腳本 - 如何更改“單元格”的值謝謝你們。
我想做的是更改包含公式的列的單元格的值。
大類列“年齡”不是來自公式,因此所有這些建議都可以更改單元格的值。
我有一個專欄,稱之為“測試”,它使用匹配公式。 如果匹配公式將其計算為負數,是否可以編寫腳本以將該列中的單元格的值更改為零? 如果該值為負數,我希望能夠將其強制為零。
回复:JMP 腳本 - 如何更改“單元格”的值我將再邁出這一步。很多次我也做過伊恩展示過的類似事情。從數據表中取出數據並使用矩陣運算符。這在處理大量數據時具有性能優勢。然而,以下是我已經使用過很多次的技術,因為它非常快,並且不需要從數據表中提取。
名稱默認為此處( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Try( dt:Age[dt << 獲取行 where( :Age < 14 )] = 0 );
“Try”函數只是防止 Get RowsWhere 可能返回空矩陣的情況,並且賦值會引發錯誤。
回复:JMP 腳本 - 如何更改“單元格”的值基於吉姆的回复,如果可能的話,通常認為避免循環是一種良好的做法:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Get the values of age into a vector
ageVals = dt:Age << getValues;
// Find the location of age values less than 14
ageValsLessThan14 = Loc(ageVals < 14);
// Set these values to zero
ageVals[ageValsLessThan14] = 0;
// Put the new values back into the column
dt:Age << setValues(ageVals);
回复:JMP 腳本 - 如何更改“單元格”的值麗貝卡,
我想知道你所問的問題是否需要在比賈斯汀所表現的更基本的層面上進行解釋。他的例子確實給了你一個答案,但是,根據你描述問題的方式,我可以推測條件語句的組成部分可能來自當前數據表以外的來源的情況。
JMP 數據表的基礎知識之一是任何單元格都可直接尋址。使用賈斯汀的答案中的數據表,只需指定列名和行號即可訪問任何單元格。
:Age[1]
指向年齡列的第一行值。更正確的引用方法是使用數據表指針(數據表命名空間)。因此,如果 Justin 的響應中指定的指向數據表的指針是“dt”,那麼
dt:Age[1]
是更合適的形式。
以 Justin 的示例為例,我們實際上可以更改適當的值,而不必創建新列。下面的代碼將做到這一點
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For( I = 1, I <= N Rows( dt ), I++,
if(dt:Age < 14,
dt:Age = 0
);
);
回复:JMP 腳本 - 如何更改“單元格”的值以下是複製到新列時如何有條件地更改單元格的示例:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
col = dt << New Column( "New Column", Formula( If( :age < 14, 0, :age ) ) );
在您的情況下,您可以將條件更改為小於零而不是 14。