此代码将生成50个按钮。我想将它们放在一个数组中,以便稍后可以引用它们并根据某些条件更改它们的属性。我的代码如下:
numIDs = 50;
bs = array (0, c(numIDs));
for (num in 1:numIDs)
{
b <- tkbutton (f.frame);
print (paste (length(b[num]), length(b)));
bs[num] <- b;
tkpack (bs[num]);
}
上面的代码产生错误:
In bs[num] <- b :
number of items to replace is not a multiple of replacement length
Execution halted
循环中的print
生成[1] "1 2"
因此长度不同,这就是分配失败的原因,但我该如何解决呢。
答案 0 :(得分:1)
您可能想要list
,而不是array
:
f.frame <- tktoplevel() # just for reproducibility
numIDs = 50;
bs = list();
for (num in 1:numIDs) {
b <- tkbutton (f.frame);
print (paste (length(b[num]), length(b)));
bs[[num]] <- b; # note `[[` extraction for lists
tkpack (bs[[num]]); # note `[[` extraction for lists
}