是否可以使用离散级别编写for循环?
我有以下形式的矢量:
a<-c(1,1,1,1,1,3,3,5,11,18 ....1350)
这是一个增加的系列,但不遵循任何逻辑顺序;
我想使用level(a)作为参数运行for循环:
for i in 1:levels(a)
我收到以下错误:
In 1:levels_id :
numerical expression has 1350 elements: only the first used
答案 0 :(得分:21)
你最初的错误是你在循环遍历你的向量元素时会混淆索引的循环。
如果要循环遍历矢量的唯一元素,请使用:
for(i in unique(a))
我认为这就是你想要做的。但另一种方法是循环遍历唯一向量的索引:
for(i in 1:length(unique(a))){
this.a <- unique(a)[i]
}
这两个是等价的,但第二个也可以让你知道当前的索引(如果你需要的话)。