2016-03-23 23 views
-2

Ben 8 değişkenlerle bir dataframe var: değişken Labor Category içinTek bir satıra birden fazla faktör nasıl transfer edilir?

enter image description here

, biz 5 faktörler: Tatil Düzenli, Fazla mesai, Eğitim, Diğer çalıştı, çalıştı.

soru şudur: Ben Labor Category dışında aynı değerlere sahip satırları bir araya getiren ve Sum_FTE değişkeni özetlemek için bir yol bulabilir

yani daha fazla sütun eklemek ederken satırların sayısını azaltmak Can:?

" Labor.CategoryHoliday.Worked "," Labor.CategoryOther.Worked "," Labor.CategoryOvertime "," Labor.CategoryRegular "," Labor.CategoryTraining "ve her faktörün durumunu göstermek için 0 veya 1 kullanın. Ve sonra Total FTE'i İşçi Kategorisi hariç aynı değerlere sahip satırlardan toplayın.

enter image description here

cevap

0

Biz işlemleri ile grubun birini yapabilirsiniz. dplyr'u kullanarak, group_by'daki sütun adlarını gruplandırma değişkenleri olarak belirtipile "Sum_FTE" öğesinin sum olmasını sağlarız. sorusuna, biz dcast kullanabilirsiniz ikinci bölümü için

library(dplyr) 
df1 %>% 
    group_by_(.dots= names(df1)[c(1:2,4:5)]) %>% 
    summarise(TotalFTE= sum(Sum_FTE)) 

nazikçe cevap sizin için

library(data.table) 
setDT(df1)[, N := 1:.N, (Labor.Category)] 
dcast(df1, Med.Center+Charged.Job+Month+Pay.Period.End ~N, 
      value.var="Labor.Category, length) 
+0

Teşekkürler (yerine görüntü dosyasının dput ile veri kümesi göstermek için daha iyi olurdu) . Ama ikinci bölüm için, bunun yanlış olduğunu gösteren 20.000'den fazla yeni değişken oluşturdum. –

+0

@BeichenLin İkinci kısımda da şüphelerim vardı, çünkü uygun bir örnek olmadan test edemedim. Bir resim yayınladınız, bundan bir çalışma örneği oluşturmak zor. Gönderinizi, örnek i .. 'dput (droplevels (head (yourdata, 10)))' ve bu örneğe dayalı beklenen çıktı ile 'dput' çıktısı ile günceller misiniz. – akrun

İlgili konular