根據儲存格值選擇位置和子集你好,
我有下面的程式碼片段,我希望它從檔案中取得列名稱,然後建立一個新的子集表,然後找到所有數字列的平均值和 SD。 Mean 和 SD 程式碼可以工作,但它根本不會建立子集表。有任何想法嗎?我已經根據所有發布的討論對此進行了檢查。我嘗試過“開頭為”和“包含”條件
這是範例文件:
| 序號 |
程式碼 |
區域 |
高度 |
重量 |
年齡 |
| 1 |
55414 |
北明尼阿波利斯 |
|
|
|
| 2 |
55455 |
明尼阿波利斯南 |
|
|
|
| 3 |
4446804e |
明尼阿波利斯東 |
|
|
|
| 4 |
4389568 |
明尼阿波利斯西 |
|
|
| 5 |
g58934 |
聖保羅N |
|
|
|
| 6 |
4989034 |
聖保羅E |
|
|
|
| 7 |
3496f |
聖保羅小號 |
|
|
|
| 8 |
5404390sfd |
明尼阿波利斯東 |
|
|
|
| 9 |
43960 |
北明尼阿波利斯 |
|
|
|
| 10 |
569043 |
聖保羅N |
|
|
|
| 11 |
6590549 |
聖保羅E |
|
|
|
dt3 = Open( "file_28.jmp" );
colcmp = "Area";
col = dt3 << get column names( string );
nc = N Items( col );
Show( nc );
For( j = 1, j <= nc, j++,
colname = Column( j ) << Get Name;
Show( colname );
If( Contains( colname, colcmp ),
dt3 << Select Where( Starts With( :colname, "Minneapolis" ) );
dt3 << Subset( Output Table Name( "MPLS" ), Selected Rows( 1 ), Selected columns only( 0 ) );
dt3 << Select Where( Starts With( :colname, "St. Paul" ) );
dt3 << Subset( Output Table Name( "STP" ), Selected Rows( 1 ), Selected columns only( 0 ) );
);
);
dtPM = Data Table( "MPLS" );
a = "Numeric";
colPM = dtPM << get column names( string );
ncPM = N Items( colPM );
Show( ncPM );
For( k = 1, k <= ncPM, k++,
colname = Column( k ) << Get Name;
Show( colname );
which = dtPM:colname << Get Data Type;
Show( which );
If( Contains( which, a ),
count = count + 1;
colnames2[count] = colname || "_MPLS";
Mean1[count] = Col Mean( :Column( k ) );
Std1[count] = Col Std Dev( :Column( k ) );
Show( Mean1[count] );
);
);
資料混合與清理回复:根據單元格值選擇位置和子集謝謝吉姆。 我對如何將存儲列名的變量傳遞給函數感到困惑,並且無法真正找到示例。 這清除了錯誤。
回复:根據單元格值選擇位置和子集您是在告訴 JMP 查找名為 :colname 的列。在此引用中,JMP 不會評估 :colname 之外的列引用。您需要做的是在 As Column() 函數中指定名稱。然後它會工作
For( j = 3, j <= nc, j++,
colname = Column( j ) << Get Name;
Show( colname );
If( Contains( colname, colcmp ),
dt3 << Select Where( Starts With( as column(colname), "Minneapolis" ) );
dt3 << Subset( Output Table Name( "MPLS" ), Selected Rows( 1 ), Selected columns only( 0 ) );
dt3 << Select Where( Starts With( as column(colname), "St. Paul" ) );
dt3 << Subset( Output Table Name( "STP" ), Selected Rows( 1 ), Selected columns only( 0 ) );
);
);