2012-12-17 36 views
6

Ayrık seviyelere sahip bir for döngüsü yazmak mümkün mü?Benzersiz değerler üzerinde döngü için

Aşağıdaki biçimde bir vektör vardır:

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

bu artan bir dizi ancak herhangi bir mantıksal bir sıra takip etmez;

Ben bağımsız değişken olarak döngü kullanılarak seviyeleri, (a) bir çalıştırmak istiyorum: aşağıdaki hatayı alıyorum

for i in 1:levels(a) 

:

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

cevap

14

Başlangıçtaki hatayı sen döngü kafa karıştırıcı olmasıdır Vektörünüzün öğeleri üzerinde döngü ile dizin üzerinde.

Eğer vektör benzersiz unsurları üzerinde döngü istiyorsanız

sonra kullanın:

for(i in unique(a)) 

Bunu yapmak istediği şey varsayalım. Ama alternatif eşsiz Vektörün endeksi üzerinde döngü şudur:

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

Bu iki eşdeğerdir, ancak ikinci (Hiç gerekirse) yanı akım indeksi bilmek sağlayacaktır.

+0

Bunlar eşdeğer uzunluktadır (a)> 0. –

İlgili konular