選擇用戶提供的列表中包含的列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我試圖弄清楚如何使用用戶指定的列表來選擇列表中包含的那些數據列。用戶提供的列表可能包含比數據表中存在的更多或更少的名稱。例如,我嘗試了以下方法,但似乎無法使其工作。任何想法,將不勝感激。謝謝
dt = open("$SAMPLE_DATA/Big Class.jmp");
// 獲取數據列名稱列表
col_list = dt << 獲取列名 ( String );
// 用戶指定的列名
cc = { 性別、體重、測試、新、舊 };
for( i=1, i<=ncol( cc ), i++,
如果(包含( col_list,抄送),
列(dt,col_list ) << 設置所選 ( 1 )
)
);
回复:選擇用戶提供的列表中包含的列多發性硬化症,
感謝您對此的幫助。我現在明白了,我對循環哪一欄的思考是導致我早期悲傷的原因。我假設我會循環並選擇數據表變量列表中列出的列,而不是用戶指定的列表。總是在這裡學習新東西。謝謝。
回复:選擇用戶提供的列表中包含的列我沒有研究輸出的細節。 你正在循環抄送,那麼你應該參考抄送而不是 col_list以獲得所需的結果。
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
// 獲取數據列名稱列表
列列表= dt <<獲取列名稱(細繩) ;
// 用戶指定的列名
抄送= {性別,重量,測試,新的,老的} ;
為了(我= 1 ,我<= N 項(抄送) ,我++,
如果(包含(列列表,查爾(抄送[我] ) ) ,
柱子( dt ,查爾(抄送[我] ) ) <<設置選定( 1 )
)
) ;
//這也有效
為了(我= 1 ,我<= N 項(抄送) ,我++,
如果(包含(列列表,查爾(抄送[我] ) ) ,
: (抄送[我]) <<設置選定( 1 )
)
) ;
回复:選擇用戶提供的列表中包含的列嗨女士,
感謝您的提示。儘管您提供的代碼可以運行,但它不會僅選擇用戶指定列表中列出的那些列。例如,上面列出的代碼選擇前兩列(姓名和性別),即使性別不在用戶指定的列表中。我認為這個列表構造正在遍歷並在 col_list 中找到與 cc 中的列號相匹配的列號,然後選擇它們。看起來它實際上是根據抄送中的位置而不是名稱來選擇列。是否可以根據匹配的名稱而不是位置來選擇列?
回复:選擇用戶提供的列表中包含的列差不多了。 對於列表,使用 N Items() 而不是 ncol()。 為了匹配兩個項目都需要具有相同的數據類型。 因此,要么提供用戶提供的列表作為字符串列表,要么使用 Char(),如下所示。
dt =打開( “$SAMPLE_DATA/Big Class.jmp” ) ;
// 獲取數據列名稱列表
列列表= dt <<獲取列名稱(細繩) ;
// 用戶指定的列名
抄送= {性別,重量,測試,新的,老的} ;
為了(我= 1 ,我<= N 項(抄送) ,我++,
如果(包含(列列表,查爾(抄送[我] ) ) ,
柱子( dt ,列列表[我] ) <<設置選定( 1 )
)
) ;