15

是否可以编写具有离散级别的 for 循环?

我有以下形式的向量:

a<-c(1,1,1,1,1,3,3,5,11,18 ....1350) 

它是一个递增的序列,但不遵循任何逻辑顺序;

我想使用levels(a)作为参数运行一个for循环:

for i in 1:levels(a)

我收到以下错误:

In 1:levels_id :
 numerical expression has 1350 elements: only the first used
4

1 回答 1

28

您最初的错误是您将循环索引与循环矢量元素混淆了。

如果您想遍历向量的唯一元素,请使用:

for(i in unique(a))

我想这就是你想要做的。但另一种方法是循环遍历唯一向量的索引:

for(i in 1:length(unique(a))){
    this.a <- unique(a)[i]
}

这两个是等价的,但是第二个也可以让你知道当前的索引(如果你需要的话)。

于 2012-12-17T14:47:37.193 回答