在循环中创建列<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个) ;
一世++;
) ;