2012-01-20 15 views
5

Bazı temel istatistik sonuçları hesaplamak için R kullanıyorum. Aşağıdaki gibi bir veri çerçevesi sütunundaki nicelikleri kalibre etmek için quantile() işlevini kullanıyorum.R'de adlandırılmış sayısal bir vektörden basit bir sayısal değeri nasıl alabilirim?

> quantile(foobars[,1]) 
    0%  25%  50%  75% 100% 
189000 194975 219500 239950 1000000 

Hesaplanan miktarlara tek tek erişebilmek istiyorum. Ancak, bunu nasıl yapacağımı anlayamıyorum. İade edilen sonucun sınıfını kontrol ettiğimde, 1 boyutlu bir sayısal.

denedim bu:

bir demet (kuantil seviye + sayı) dönmek gibi görünüyor
> q <- quantile(foobars[,1]) 
> q[3] 
    50% 
219500 

. Bu durumda adet (219.500 yalnızca ilgileniyorum. Sen ile sayısal değerin baskılı temsilini karıştırıyorsun

Basit (sayısal) değişken içine sadece sayı erişebilir nasıl

?

cevap

16

. Bütün "adlı" bit anlamına

> dat <- rnorm(100) 
> q <- quantile(dat) 
> q 
     0%  25%  50%  75%  100% 
-2.2853903 -0.5327520 -0.1177865 0.5182007 2.4825565 
> str(q) 
Named num [1:5] -2.285 -0.533 -0.118 0.518 2.483 
- attr(*, "names")= chr [1:5] "0%" "25%" "50%" "75%" ... 

vektörü (bu durumda) kantil etiket içeren ekli bir özelliği "names" sahip olmasıdır: gerçek değer olarak çok R 'ile ilgili olarak, q adlandırılmış sayısal vektörü içerir. R bunları adlandırılmış için basar Varsa, yazdırılmış çıktıda olması yararlı olarak kabul edilir. Ancak, bunların hiçbir şekilde sayısal bir vektör olduğu gerçeğini değiştirmezler. Onlar "names" niteliği yoktu sanki hesaplamalarda bu kullanabilirsiniz: isimler sizi rahatsız ederse

> q[3] + 10 
    50% 
9.882214 

, unname() işlevi bunları kaldırmak için var: Bütünlüğü için

> q2 <- unname(q) 
> q2 
[1] -2.2853903 -0.5327520 -0.1177865 0.5182007 2.4825565 

, gitmeliyim muhtemelen bir atama sürümüne ('names<-'()) sahip names() işlevini kullanarak "names" ayıklayabilirsiniz.

> q3 <- q 
> names(q3) 
[1] "0%" "25%" "50%" "75%" "100%" 
> names(q3) <- NULL 
> names(q3) 
NULL 
+1

'as.vector (q) 'da isimleri kaldırır: Bu yüzden, bir vektör ad çıkarmak için başka bir yol adları NULL atamak için – sam

İlgili konular