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
İ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:
- 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
- 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.
Nasıl saklı satır içeren varolan bir S...
Her satır için bir R dataframe içinde...
Nasıl StringBuilder için bir yeni satı...
Ekleme dize içinde yeni satır için?...
nasıl pandalar dataframe satır sayısı ...