在循環中創建列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
所以在我的腳本中,我有一個創建列的循環,效果很好,但我想稍微改進一下。 我有以 (number)|(character)|(number)|(character) 等形式出現的數據。所以我有交替數據類型,我想以正常形式打印它們。 現在,列是數字形式,所以我看不到任何字符數據。 但是如果我把它改成字符格式,我就失去了數字數據結構。 所以我有這個循環:
對於 (j = 1, j <= nitems(pinList), j++,
dt2 << 新列(pinList, 數字, 連續, Format("Best",12));
dt2 << 新列(pinList[j++],字符,標稱);
);
我在 pinList 數組中定義所有列名的位置。 這行得通,除了它複製了 pinList 的條目(在這種情況下,這實際上並不是一件壞事)。當我嘗試在解析由“|”分隔的數據之後運行另一個循環時,真正的問題就出現了並將其放入新列中。
對於 (i = 1, i <= nrows(dt2), i++,
one_test_result_list = 單詞(列(dt2,“Test_Result”) , "|");
對於 (k = 1, k <= nitems(one_test_result_list), k++,
列(dt2,pinList) = one_test_result_list;
);
);
最後一行運行一次,然後中斷,因為 pinList 中的下一個條目它後面有一個“2”,因為在創建列時,它重複了每個名稱。 我不確定如何讓它工作。 我可以在 pinList 數組中定義我想要的所有名稱,但我想要數字和字符的交替列類型。
任何幫助是極大的讚賞! 謝謝!!
回复:在循環中創建列我曾嘗試過它的變體,但我將 j++ 放在第二個新列行之前。 我還使用 if 語句單步執行已解析的數據列表。 所以我這樣組合它們:
為了( j = 1個, j <= N 項(引腳列表) , j ++,
dt2 <<新建專欄(引腳列表[ j ] ,數字,連續的,格式( “最好” , 12 ) ) ;
dt2 <<新建專欄(引腳列表[ j + 1個] ,特點,標稱) ; // 為 j+1 創建列。
j ++; // 然後迭代 j=j+1。
) ;
為了(一世= 1個,一世<= N行( dt2 ) ,一世++,
one_test_result_list =字(柱子( dt2 , “測試結果” ) [一世], “|” ) ;
為了( j = 1個, j <= N 項( one_test_result ) , j ++,
如果(模數( j , 2個) == 1個,
柱子( dt2,引腳列表[ k ] ) [一世] =數量( one_test_result_list [ k ]) ; // 對奇數 j 執行
柱子( dt2,引腳列表[ k ] ) [一世] = one_test_result_list [ k ] ; // 對偶數 j 執行
);
);
) ;
這非常有效。 因此,它確保數字結果以數字形式打印,並且字符以其正常格式顯示。 非常感謝你的幫助!!
回复:在循環中創建列嗨索菲奧,
如果我正確理解您的腳本,我認為問題出在您在循環體內使用 j++ 時,因為 j++ 只會在循環完成迭代後迭代 j 。我可以想出幾種解決方法。一種方法是把j++換成j+1,然後單獨給j++加一行。另一種方法是添加一個 If() 語句來為偶數和奇數 j 創建單獨的命令。
有關 i++ 如何在循環體內運行的示例,請參見示例 1 和 2。
我希望這有幫助。
名字默認到這裡( 1個) ;
dt2 =新表( “dt2” ,添加行( 20 ) ) ;
引腳列表= { “一種” , “乙” , “C” , “D” , “E” , “F” } ;
為了( j = 1個, j <= N 項(引腳列表) , j ++,
dt2 <<新建專欄(引腳列表[ j ] ,數字,連續的,格式( “最好” , 12 ) ) ;
dt2 <<新建專欄(引腳列表[ j + 1個] ,特點,標稱) ; // 為 j+1 創建列。
j ++; // 然後迭代 j=j+1。
) ;
為了( j = 1個, j <= N 項(引腳列表) , j ++,
如果(模數( j , 2個) == 1個,
dt2 <<新建專欄(引腳列表[ j ] ,數字,連續的,格式( “最好” , 12 ) ) , // 對奇數 j 執行。
dt2 <<新建專欄(引腳列表[ j ] ,特點,標稱) // 對偶數 j 執行。
)
) ;
// 示例 1。
為了(一世= 1個,一世<= 10 ,一世++,
打印(一世) ;
打印(一世++ ) ;
) ;
// 示例 2。
為了(一世= 1個,一世<= 10 ,一世++,
打印(一世) ;
打印(一世+ 1個) ;
一世++;
) ;