如何從日期值中提取單字中的月份以及如何更改異常值的預設標記?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好。
1.) 如何從整列的日期值中提取單字中的月份?
假設儲存格 #1 的日期為“ 2009年3月19日」。 我希望下一篇專欄能夠獲得月份 - 」行進”,在這個例子中。
2.) 有沒有辦法更改異常值的預設標記 - 例如全域將異常值標記設為輪廓三角形?
感謝您的幫助。
回覆:如何從日期值中提取單字中的月份以及如何更改異常值的預設標記?更複雜的版本:
Names Default To Here( 1 );
// make a sample data table
dt = New Table( "Data",
add rows( 10000 ),
New Column( "it", Numeric, Ordinal, Format( "Best", 8 ), Formula( Row() ) ),
New Column( "Batch", Numeric, Ordinal, Format( "Best", 8 ), formula( Random Integer( 110 ) ) ),
New Column( "y1", Numeric, Continues, Format( "Best", 8 ), formula( Random Lognormal( :Batch / 10, 5 ) ) ),
New Column( "y2", Numeric, Continues, Format( "Best", 8 ), formula( Random Lognormal( :Batch / 10, 5 ) ) ),
New Column( "Out",
Numeric,
Ordinal,
Format( "Best", 8 ),
Set Property( "Value Colors", {0 = -13977687, 1 = -4222943} ),
Color Cell by Value,
formula( 0 )
),
New Column( "Outy1",
Numeric,
Ordinal,
Format( "Best", 8 ),
Set Property( "Value Colors", {0 = -13977687, 1 = -4222943} ),
Color Cell by Value,
formula( 0 )
),
New Column( "Outy2",
Numeric,
Ordinal,
Format( "Best", 8 ),
Set Property( "Value Colors", {0 = -13977687, 1 = -4222943} ),
Color Cell by Value,
formula( 0 )
),
);
dt << run formulas;
Column( dt, "it" ) << delete formula;
Column( dt, "Batch" ) << delete formula;
Column( dt, "y1" ) << delete formula;
Column( dt, "y2" ) << delete formula;
Column( dt, "Out" ) << delete formula;
Column( dt, "Outy1" ) << delete formula;
Column( dt, "Outy2" ) << delete formula;
// now we get to work
// make a list of batches
byvarlist = Associative Array( dt:Batch ) << get keys;
// make a list of columns
cols = dt << get column names( Continuous ); //List all Numeric columns
// loop through the batches
For( i = 1, i <= N Items( byvarlist ), i++,
// select each batch
dt << select where( dt:Batch == byvarlist[i] );
// subset each batch
subdt = dt << Subset( Selected Rows( 1 ) );
// clear selection for smoth workflow
dt << clear select;
// finde outliers in each variable within each batch
For( ii = 1, ii <= N Items( cols ), ii++,
out = Eval(
Parse(
"subdt << get rows where(
subdt:" || Char( cols[ii] ) || " > Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.75 ) + 1.5 * (Col Quantile( subdt:" || Char( cols[ii] ) || ", 0.75 ) - Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.25 )) | subdt:" || Char( cols[ii] ) || " <
Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.25 ) - 1.5 * (Col Quantile( subdt:" || Char( cols[ii] ) || ", 0.75 ) - Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.25 )));"
)
)`;
Eval( Parse( "column (subdt, \!"Out" || Char( cols[ii] || "\!" )[" || Char( out ) || "] = 1;" ) ) );
// also indicate the global outlier
Column( subdt, "Out" )[out] = 1;
//wait (0.00001);
);
// update original data table with new information for the batch
subdt << delete columns( "Batch" );
subdt << delete columns( cols );
dt << Update( With( subdt ), Match Columns( :it = :it ) );
Close( subdt, No Save );
//Wait( 0.00001 );
);
dt << color by column( :Out );
回覆:如何從日期值中提取單字中的月份以及如何更改異常值的預設標記?工作原理類似於 VLookup(false) 函數。
謝謝,伊恩!
回覆:如何從日期值中提取單字中的月份以及如何更改異常值的預設標記?也許不是更好,但作為替代方案,您也可以使用“Month()”並定義值標籤屬性:
新表( “日期之月” ,
新增行( 1 ) ,
新專欄( “日期” ,
數位,
“連續的” ,
格式( “月/日/年” , 12 ) ,
輸入格式( “月/日/年” ) ,
公式(今天() )
) ,
新專欄( “月” ,
數位,
“連續的” ,
格式( “最好的” , 12 ) ,
公式(月( :日期) ) ,
價值標籤(
{ 1 = “一月” , 2 = “二月” , 3 = “行進” , 4 = “四月” , 5 = “可能” , 6
= “六月” , 7 = “七月” , 8 = “八月” , 9 = “九月” , 10 = “十月” , 11
= “十一月” , 12 = “十二月” }
) ,
使用值標籤( 1 )
)
)
回覆:如何從日期值中提取單字中的月份以及如何更改異常值的預設標記?很酷的腳本,榮恩!
我已經在 Fit Y by X、Distribution & Graph Builder 上嘗試過了,效果非常好 *
非常感謝並欽佩您在 JMP、Ron & Jim 方面的專業知識。
回覆:如何從日期值中提取單字中的月份以及如何更改異常值的預設標記?非常感激,吉姆!
我正打算放棄並選擇 Substring() 或 Left()。
您的解決方案完美運作。
- 蘭迪
回覆:如何從日期值中提取單字中的月份以及如何更改異常值的預設標記?另一種不建議的方法是更改圖表中選定行的首選項。我不建議使用選擇,因為其他一些命令將預設使用選擇而不是表中的所有行。但你仍然可以嘗試這個:
名稱預設為此處( 1 ) ;
//注意:更改首選項將會
//影響JMP的預設行為。
優先(標記選擇模式( 1 ) ) ; // 您也可以從檔案>>首選項選單執行此操作,只需執行一次。
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
// 取得列列表
列= dt <<取得列名(連續的) ; //列出所有數字列
為了(我= 1 ,我<= N 項(列) ,我++,
出去=評估(
解析(
「dt << 取得行,其中(
DT:” ||查爾(列[我] ) || " > Col 分位數( dt:" ||查爾(列[我] ) || ", 0.75 ) + 1.5 * (列分位數( dt:" ||
查爾(列[我] ) || ", 0.75 ) - Col 分位數( dt:" ||查爾(列[我] ) || “,0.25))| dt:” ||查爾(列[我] ) || ” <
列分位數( dt:"
||查爾(列[我] ) || ", 0.25 ) - 1.5 * (列分位數( dt:" ||查爾(列[我] ) || ", 0.75 ) - Col 分位數( dt:" ||查爾(列[我] ) ||
“,0.25)));”
)
) `;
已選擇= dt <<選擇行(出去) ;
已選擇<<標記( 17 號) ;
//選定的<<標記大小(5); // 沒有這個選項
) ;
// 看看它是什麼樣子
新窗戶( “輸出” ,
h 列錶框(
分配(
連續分佈(柱子( :高度) ,顯示百分比( 1 ) ,自訂匯總統計數據(和( 1 ) ) ) ,
連續分佈(柱子( :重量) ,顯示百分比( 1 ) ,自訂匯總統計數據(和( 1 ) ) ) ,
發送至報告(
派遣( { “分佈” , “高度” } , “分佈直方圖” ,框架盒, {調度段(歷史段( 1 ) ,直方圖顏色( 53 ) )} ) ,
派遣( { “分佈” , “重量” } , “分佈直方圖” ,框架盒, {調度段(歷史段( 1 ) ,直方圖顏色( 53 ) )} )
)
) ,
雙變數(是( :高度) , X ( :重量) )
)
) ;
回覆:如何從日期值中提取單字中的月份以及如何更改異常值的預設標記?你好拉韋拉多,
特克斯尼爾森在這兩個主題上都是正確的。但是,如果您想為單變量異常值設定標記(暴力風格),您可以嘗試以下操作。
任何列中屬於異常值的任何行現在都將具有特殊標記,這可能是優點(或缺點)。您可以修改它以在進行分析時標記特定列中的異常值。
祝你好運!
榮恩
名稱預設為此處( 1 ) ;
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
// 取得列列表
列= dt <<取得列名(連續的) ; //列出所有數字列
為了(我= 1 ,我<= N 項(列) ,我++,
出去=評估(
解析(
「dt << 取得行,其中(
DT:” ||查爾(列[我] ) || " > Col 分位數( dt:" ||查爾(列[我] ) || ", 0.75 ) + 1.5 * (列分位數( dt:" ||
查爾(列[我] ) || ", 0.75 ) - Col 分位數( dt:" ||查爾(列[我] ) || “,0.25))| dt:” ||查爾(列[我] ) || ” <
列分位數( dt:"
||查爾(列[我] ) || ", 0.25 ) - 1.5 * (列分位數( dt:" ||查爾(列[我] ) || ", 0.75 ) - Col 分位數( dt:" ||查爾(列[我] ) ||
“,0.25)));”
)
)` ;
已選擇= dt <<選擇行(出去) ;
已選擇<<標記( “*” ) ;
已選擇<<清除選擇;
) ;
// 看看它是什麼樣子
分配(
連續分佈(柱子( :高度) ,顯示百分比( 1 ) ,自訂匯總統計數據(和( 1 ) ) ) ,
連續分佈(柱子( :重量) ,顯示百分比( 1 ) ,自訂匯總統計數據(和( 1 ) ) ) ,
發送至報告(
派遣( { “分佈” , “高度” } , “分佈直方圖” ,框架盒, {調度段(歷史段( 1 ) ,直方圖顏色( 53 ) )} ) ,
派遣( { “分佈” , “重量” } , “分佈直方圖” ,框架盒, {調度段(歷史段( 1 ) ,直方圖顏色( 53 ) )} )
)
) ;
回覆:如何從日期值中提取單字中的月份以及如何更改異常值的預設標記?取得了以下成果:

透過將以下公式應用於「月份」列:

關於第二個問題,即為異常值分配特定標記。問題在於,標記是作為行狀態分配給行,而不是分配給列內的儲存格。因此,人們沒有能力對每一列進行異常值標記的全域分配。