使用變量創建新列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我正在嘗試用公式創建一個新列,它由 2 個變量表示,如下所示:
dt << New Column("myNewColumn", Numeric, Continuous, Formula(:Ceiling( XXColumn / Size) * Size));
在哪裡:
XXColumn 是 dt 中的列名之一,在列對話框中選擇
大小 = 列對話框中的數值
我的嘗試產生了一個新列,其公式沒有值,因為公式創建如下:
天花板(柱(XXColumn)/尺寸)*尺寸
沒有實際分配它。
知道我該怎麼做嗎?
回复:使用變量創建新列再次感謝你,女士。 我會注意這一點。
回复:使用變量創建新列據我所知,通過閱讀您的代碼,f_Bin 指的是一個列,而 n_Bin 是一個字符串,這是在這裡使用最安全的數據類型。
回复:使用變量創建新列終於奇蹟發生了!
這是我使用的代碼..
col = dts << New Column("Binning", Numeric, Continuous);
Eval( Parse( Eval Insert( "col << Set Formula(:Ceiling( ^n_Bin^ / ^BinSize^) * ^BinSize^)<< eval 公式" )) );
謝謝 MS 的指導;我使用的 f_bin 和 n_bin 有什麼區別?
回复:使用變量創建新列嘗試直接使用 n_Bin 而不是 f_Bin:
評價(解析(評估插入( “col << 設置公式(上限(^n_Bin^ / ^BinSize^)* ^BinSize^)” )) ) ;
回复:使用變量創建新列它不起作用。 也許我應該解釋一下我在做什麼並分享粘貼我的代碼。
第 1 步:從“列”對話框收集輸入
第 2 步:對所選列 + 默認列使用 Min、Mean、Max 做匯總表
第 3 步:為 Ceiling 創建新列
第 4 步:使用圖形生成器進行繪圖
代碼:
dt0 = 當前數據表();
FN = dt0 << 獲取名稱;
r = 列對話框(
Bin = ColList( "X, Binning By", Max Col( 1 ) ),
Overlay = ColList( "Group by / Overlay by", Max Col( 1 ) ),
Split = ColList( "Y, Response", 最大 Col( 5 ) ),
Compare = ColList( "X 軸頂部", Max Col( 1 ) ),
HList( "容器大小: ", BinSize = EditNumber( .1 ) ),
);
Bin = r["Bin"];
覆蓋 = r["覆蓋"];
拆分 = r["拆分"];
比較 = r["比較"];
BinSize = r["BinSize"];
dts = dt0 << 摘要(
組(:固定,列(dt0,覆蓋),列(dt0,比較)),
均值(:收益率),
最小值(列(dt0,Bin)),
均值(列(dt0,Bin)),
最大(列(dt0,Bin)),
最小值(列(dt0,拆分[1])),
均值(列(dt0,拆分[1])),
最大(列(dt0,拆分[1])),
最小 ( 列 (dt0,Split[2]) ),
均值(列(dt0,拆分[2])),
最大值 ( 列 (dt0,Split[2]) ),
最小值 ( column(dt0,Split[3]) ),
均值(列(dt0,拆分[3])),
最大值 ( 列(dt0,Split[3]) ),
最小值 ( column(dt0,Split[4]) ),
平均值(列(dt0,拆分[4])),
最大值 ( 列(dt0,Split[4]) ),
最小 ( 列 (dt0,Split[5]) ),
均值(列(dt0,拆分[5])),
最大值 ( 列 (dt0,Split[5]) ),
統計列名格式(“列統計”),
);
dts << 設置名稱(FN || “摘要”);
n_Bin = Bin[1]||"均值";
f_Bin = Column(dts, n_Bin);
col = dts << New Column("Binning", Numeric, Continuous);
Eval( Parse( Eval Insert( "col << Set Formula(Ceiling( ^f_Bin^ / ^BinSize^) * ^BinSize^)" )) );
回复:使用變量創建新列不。據我所知,評估公式應該是等價的。
嘗試將新列分開並將公式設置為單獨的表達式:
dt =打開( “$SAMPLE_DATA/Big Class.jmp” ) ;
列=列對話框(
列1 =列表( “X” ,最大科爾( 1個) ,數據類型(數字) ) ,
列2 =列表( “是” ,最大科爾( 1個) ,數據類型(數字) )
) ;
XX專欄=列[ “第一列” ][ 1個] <<取名;
尺寸=列[ “第二列” ][ 1個] <<取名;
山口= dt <<新建專欄( “我的新專欄” ,數字,連續的) ;
評價(解析(評估插入( “col << 設置公式(天花板(^XXColumn^ / ^Size^)* ^Size^)” ) ) ) ;
山口<<評估公式;
回复:使用變量創建新列它不工作。 結果還是一樣。
在 JSL 中,應用按鈕 == ?你知道嗎?
回复:使用變量創建新列嘗試 <
評價(解析(評估插入( "dt << 新列(\!"myNewColumn\!", 數值、連續、公式(上限(^XXColumn^ / ^Size^)* ^Size^),< ) ) ) ;
回复:使用變量創建新列我的是 JMP8.0.0 Windows
有或沒有它仍然一樣。 T_T
回复:使用變量創建新列不,這不是預期的。 對我來說(JMP 10 for Mac)無需點擊“應用”即可運行。 在“天花板...”之前有一個無意的冒號,它保留在您的原始代碼中(我現在已經在上面編輯了我的代碼)。 也許它有助於刪除它。
回复:使用變量創建新列謝謝女士。
使用正確公式創建的新列。 但是,行是空的。 我需要轉到 UI 上的公式部分,然後單擊“應用”,然後只顯示值提示。
是預期的嗎?
回复:使用變量創建新列公式中的變量在創建時不會計算,因此應按字面意思表示。 避免這種情況的一種方法是操縱和解析字符串。
例子:
dt =打開( “$SAMPLE_DATA/Big Class.jmp” ) ;
列=列對話框(列1 =列表( “X” ,最大科爾( 1個) ,數據類型(數字) ) ,列2 =列表( “是” ,最大科爾( 1個) , ,數據類型(數字) ) ) ;
XX專欄=列[ “第一列” ][ 1個] <<取名;
尺寸=列[ “第二列” ][ 1個] <<取名;
評價(解析(評估插入( "dt << 新列(\!"myNewColumn\!", 數值、連續、公式(上限(^XXColumn^ / ^Size^)* ^Size^))” ) ) ) ;