Faktörden R = kapalı değişkene dönüştürme sorunu [kapalı]


11

Bir faktör değişkeni sayısal bir dönüştürmek istiyorum ama as.numericbeklediğim bir etkisi yok.

Aşağıda, orijinal değişkene dayalı olarak değişkenin sayısal sürümü için özet istatistikler elde ediyorum. Araçlar 1'e kadar saymaya devam ediyor ... belki (o tahmin ediyor) faktörün seviyelerinin hem isimleri hem de sayıları var ve sayıyı as.numerickullanmak için tasarlandığında yeni değişkenin değerinin isminden gelmesini bekliyorum ?

> describe.by(as.numeric(df$sch), df$sch)

group: 
  var    n mean sd median trimmed mad min max range skew kurtosis se
1   1 5389    1  0      1       1   0   1   1     0  NaN      NaN  0
--------------------------------------------------------- 
group: 001
  var  n mean sd median trimmed mad min max range skew kurtosis se
1   1 19    2  0      2       2   0   2   2     0  NaN      NaN  0
--------------------------------------------------------- 
group: 002
  var  n mean sd median trimmed mad min max range skew kurtosis se
1   1 54    3  0      3       3   0   3   3     0  NaN      NaN  0
--------------------------------------------------------- 

1
Eklediğiniz yeni etiketleri kaldırdım; Bana çok genel ve ayrımcı değil ya da as.factor çok dar olması durumunda (R tabanındaki bir işlev olduğu için) görünüyordu. Bir şeyin kaybolduğunu düşünüyorsanız lütfen tekrar etiketleyin.
JMS

Yanıtlar:


28

Bu doğrudur: as.numeric(factor)R'nin bu faktörün düzeyine atadığı sayıyı döndürür. Deneyebilirsinas.numeric(as.character(factor))


4
Bu cevabın önerdiği gibi stackoverflow.com/a/3418192/476907 as.numeric(levels(f))[f] önerilir ve biraz daha verimlidiras.numeric(as.character(f))
discipulus

Teşekkür ederim! Bu cevap bana çok yardımcı oldu :)
Yasha

13

Bu, R Sık Sorulan Sorular'daki SSS 7.10'dur . Evet, 1'den düzey sayısına tamsayı olarak bir faktör kaydedilir ve as.numeric temel kodları verir. SSS, sayıya dönüştürmek için 2 yol sunar.

Ancak, genellikle bunun nedeni, verileri okuduğunuzda, verilerinizle ilgili olarak R'nin sayılar yerine bir faktör olarak davranmasına neden olan bir şey (genellikle sayısal olmayan karakter). Ham verileri düzeltmek (sayısal olmayan parçayı NA'ya dönüştürür) veya read.table veya benzeri bir yöntem kullanıyorsanız colClasses argümanını kullanmak genellikle daha iyidir.


1
values.tmp <- sapply (possibleValues, as.numeric); values.nonnumeric <- values.tmp [is.na (values.tmp)]
russellpierce
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.