<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想打開一個數據表(使用 Big Class.jmp 作為示例,但想對任何表執行此操作)並為每列創建一個匯總表,返回每列的非缺失值數量(如表以下)。
| N 行 | N(姓名) | N(年齡) | N(性別) | N(高度) | N(重量) |
|---|
| 40 | 40 | 40 | 40 | 40 | 40 |
我嘗試了兩種不同的方法,但沒有成功(我使用的是 JMP 9.0.3 64 位)。
在第一個示例中,我嘗試將已解析字符串列表{N(:name),N(:age),N(:sex),N(:height),N(:weight)} 傳遞給Summary( )。 但是,當我運行它時,它只創建一個包含 N 行的匯總表。
示例1
////////////////////////////////////////////////// ///////// ///////////////////////////////////////// ////////////////
打開(“$SAMPLE_DATA/Big Class.jmp”);
dt = 當前數據表();
colList = dt<<獲取列名();
icols = N 項(colList);
總和列表={};
for(i=1, i<=icols, i++,
插入(sumList, 解析("N(:" || char(colList ) || “)”))
);
summDt = dt<
////////////////////////////////////////////////// ///////// ///////////////////////////////////////// ////////////////
然後,我嘗試定義一個表達式並傳遞一個已解析的字符串(N(:name),N(:age),N(:sex),N(:height),N(:weight))。 然而,當我嘗試評估這個表達式時,我得到以下結果......
出乎意料 ",". 可能少了一個“;”或者 ”,”。
第 1 行第 9 列:N(:姓名)►、N(:年齡)、N(:性別)、N(:身高)、N(:體重)
其餘被忽略的文本是
例2
////////////////////////////////////////////////// ///////// ///////////////////////////////////////// ////////////////
打開(“$SAMPLE_DATA/Big Class.jmp”);
dt = 當前數據表();
colList = dt<<獲取列名();
icols = N 項(colList);
MyExpr = expr(summDt = dt<
for(i=1, i<=icols, i++,
if(i==1, strColumns = "N(:" || char(colList ) || ")", strColumns = strColumns || ", N(:" || char(colList ) || “)”)
);
//繞過上面的檢查
//strColumns = "N(:名稱)"; //適用於一列,但當我嘗試傳遞多於一列時會拋出錯誤(即“意外”,”。 可能少了一個“;”或者 ”,”。”)
測試 = Eval Expr(MyExpr);
測試;
////////////////////////////////////////////////// ///////// ///////////////////////////////////////// ////////////////
我一定是在做一些愚蠢的事情。
任何建議/幫助將不勝感激。
謝謝。
這個例子似乎有效並且可能有幫助:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
colList = dt << 獲取列名();
dtsum = dt << 摘要(Mean( Eval( colList ) ) );