2016-08-04 3 views
1

Ich habe eine Reihe von Zahlen zwischen 1 bis 10 in aufsteigender Reihenfolge, die einige Nummern fehlen. Ich möchte die erste Nummer für jede fehlende Lücke finden. Ich tue dies in R. Zum Beispiel:Wie findet man die erste fehlende Zahl in jeder Lücke der Folgezahlen?

numbers=c(1,2,5,6,7,10) 

die Zahlen fehlt, sind 3,4 und 8,9, so möchte ich 3 und 8 finden:

3 
8 

irgendwelche Vorschläge?

dank

Antwort

2

können Sie dies mit diff und subsetting erreichen als

numbers[diff(numbers) != 1] + 1 
[1] 3 8 

diff(numbers) != 1 folgt eine logische Vektor zurück, wo benachbarte Elemente in der „Zählen“, um nicht gleich die nächste Nummer sind. numbers[] wird diese unterteilen und dann 1 hinzufügen, um die fehlenden Werte zurückzugeben.

+0

@lmo brilliant! – Mohammad