Ben 1
bu durumda, a
birlikte kaç bilmek istiyorumKont ardışık sayılar
"a": 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0
gibi bir vektör cevap 3 olacak ve 2.
mi Bunu yapabilecek herhangi bir betik var mı?
Ben 1
bu durumda, a
birlikte kaç bilmek istiyorumKont ardışık sayılar
"a": 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0
gibi bir vektör cevap 3 olacak ve 2.
mi Bunu yapabilecek herhangi bir betik var mı?
Bkz. ?rle
.
## create example vector
a <- c(rep(0, 3), rep(1, 3), rep(0, 4), rep(1, 2), rep(0, 3))
## count continuous values
r <- rle(a)
## fetch continuous length for value 1
r$lengths[r$values == 1]
# [1] 3 2
"Değer" değil "değer" değil mi? '$' Ile kısmi eşleştirme, doğru bilgiyi bulur, ancak (a) $ v’nın onu aşırıya çekmesini sağlar. – thelatemail
Bu nasıl?
test <- c(0,0,0,1,1,1,0,0,0,0,1,1,0,0,0)
rle(test)$lengths[rle(test)$values==1]
#[1] 3 2
masif veriler için, bazı dolambaçlı seçerek kullanarak onu biraz hızlandırabilir:
diff(unique(cumsum(test == 1)[test != 1]))
#[1] 3 2
Diğerleri soru cevap var. İki gözlemi eklemek isterim:
Veri girişi numarası: taramayı kullanın (varsayılan olarak "numeric" olarak sınıflandırılır, rep veya virgüllere gerek yoktur) ve "karakter" i eklediğinizde boşluk ile ayrılmış karakterler için de çalışır. tartışma.
a <- scan()
1: 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0
16:
Read 15 items
rle
Ben bilinmeyen bir fonksiyon ama çok kullanışlı rle` `arayan kullanıcıların 2 gün içinde en az 3 soru gördüm gerçekten rep
arle <- rle(a)
rep(arle$values, arle$lengths)
[1] 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0
Rle'nin inverse.rle için tersi bir işlevi olduğunu düşünmüştüm;) – Dason
Sanırım, ama onun kodunu incelediniz mi? –
için ters fonksiyonudur. –