2016-03-22 12 views
-2

dize dizilerine dayanan bir sayısal vektöre şeritlerinin bir vektör dönüştürme, bu görünür gibi:I A dizisine dayalı nümerik bir vektöre dönüştürmek istiyorum</p> <pre><code>A <- c("A","A","B","B", "C","C","C", "D") </code></pre> <p>gibi bir vektör var

c(1:2, 3:4, 5:7, 8) 

Bu mümkün mü?

+0

Beklediğiniz cevabınız nedir? "A" ve "B" uzunlukları farklıdır – akrun

+0

Vector B benim cevabımdır. Ben A var ve B – nouse

+0

içine çevirmek istiyorum Ama, A 8 elemanları ve B 9 – akrun

cevap

4

Dene:

A <- c("A","A","B","B", "C","C","C", "D") 
as.numeric(factor(A)) 
[1] 1 1 2 2 3 3 3 4 

ve durumda gerçekten vektör length 1'den bir diziyi istiyorum:

labels(factor(A)) 
[1] "1" "2" "3" "4" "5" "6" "7" "8" 

veya

1:length(A) 
[1] 1 2 3 4 5 6 7 8 

ilk dizisi ise Ne istediğinizi daha fazla bilgiye sahip olmanız durumunda plyr::mapvalues bir noktada licated vakalar. Örneğin, biraz daha fazla kontrole ihtiyaç duyduğunuzda kullanışlı olur. Örneğin, diğer çıktıyı to argümanını kolayca temin edebilirsiniz, ör. month.name[1:4].

+0

Bu çok yakın zaten. Paketim, bir vektörün faktör düzeyine bağlı olarak bir grafiği renklendirmesini bekler: Yeni faktör seviyelerinin başladığı yere söylemem gerekiyor (dolayısıyla 1: 2,3: 4,5: 7,8 sözdizimi). Bu önerileri ile çalışabilir mi görüyorum. – nouse

+0

Sadece bir not: Yeni faktör seviyesinin başlangıcı için bir göstergeye ihtiyacınız varsa, veri setinizin faktör seviyesi boyunca sipariş edildiğini varsayarak, 'diff (as.numeric (factor (A))) 'gibi bir şey deneyebilirsiniz. Çoğu paket, normal faktörleri anlayabilmelidir. – coffeinjunky

İlgili konular

 İlgili konular