SORU
27 EKİM 2009, Salı


Bir dataframe için ekleme satır - factor sorunu

Büyük bir dataframe (15 sütun tarafından 14552 satır) 2007 yılından 2001 fatura bilgileri içeren var. SqlFetch 2008 veri almak için kullandım. Önceki 7 yılın verileri 2008 verileri eklemek için aşağıdaki gibi bir şey yapmaz

alltime <-rbind(alltime,all2008)

Ne yazık ki bu oluşturur

Uyarı mesajı: [<-.factor(*tmp*, ri, değer = c(NA, NA, NA, NA, NA, NA, NA, : geçersiz faktör düzeyi, NAs oluşturdu

Benim tahminim önceki dataframe içinde olan yeni hasta olduğunu ve bu nedenle vermek ne olmaz. Başka bir sütun başvuran doktor adını. Yeni başvuran bir doktor aynı soruna neden olur.

Yol R ithalat verileri ve otomatik olarak çalışır sayısal nedir ve ne değildir (ve böylece rahat bir faktör) güzel - e kadar sen nasýl daha sonra olur bir acı. Nasıl benim sorunum zarif aşmak mı?

CEVAP
28 EKİM 2009, ÇARŞAMBA


İki tür data.frames uyumsuzluğu neden olabilir.

Öncelikle tipleri (sınıfları) kontrol edin. Tanı amaçlı bunu yapmak için:

new2old <- rbind( alltime, all2008 ) # this gives you a warning
old2new <- rbind( all2008, alltime ) # this should be without warning

cbind(
    alltime = sapply( alltime, class),
    all2008 = sapply( all2008, class),
    new2old = sapply( new2old, class),
    old2new = sapply( old2new, class)
)

Görünüşe göre bir satır olması bekliyorum:

            alltime  all2008   new2old  old2new
...         ...      ...       ...      ...
some_column "factor" "numeric" "factor" "character"
...         ...      ...       ...      ...

Eğer öyleyse açıklama: rbind eşleme türlerini kontrol etme. Eğer rbind.data.frame kod sonra seni görelim, ilk bağımsız değişken çıkış türleri başlatıldı görebilirsin. İlk verileri.çerçeve türü bir faktör, o zaman çıkış veri.Kare sütun düzeyleri unique(c(levels(x1),levels(x2))) faktördür. Ama ikinci veri.Kare sütun faktör değildir levels(x2) seviyeleri kapsamıyor yani 12**, o zaman.

Çıkış verileri yanlış olduğu anlamına gelir! NA'gerçek değerler yerine s

Varsayalım:

  1. türleri farklı yöntem (farklı ayarları, ondalık ayırıcı belki) ile oluşturulmuş çok R/RODBC başka bir sürüm ile eski veriler
  2. BOŞ ya da sorunlu sütununda belirli bazı veriler, örneğin vardır. birisi veritabanı altında sütun değiştirin.

Çözüm:

onun yanlış ve sabit yüzden yanlış bir sütun bulmak ve nedenini bulmak. Neden belirtiler ortadan kaldırmaz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
R

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • arnejann

    arnejann

    3 Kasım 2007
  • megablueblaster

    megablueblas

    23 HAZİRAN 2006
  • TechnoBuffalo

    TechnoBuffal

    8 HAZİRAN 2007