Herhangi bir istatistik yapılmadan önce çok fazla temizlik gerektiren dağınık anket verileriyle sık sık ilgilenirim. Bunu Excel'de, bazen Excel formüllerini kullanarak ve bazen girişleri tek tek kontrol ederek yapıyordum. R'de bunları yapmak için komut dosyaları yazarak bu görevlerin gittikçe daha fazlasını yapmaya başladım, ki bu çok yararlı oldu (faydalar yapılanların kaydını tutmayı, hata olasılığını azaltmayı ve veri kümesi varsa kodu tekrar kullanabilmeyi içerir güncellenmiş).
Ama yine de verimli bir şekilde idare etmekte zorlandığım bazı veri türleri var. Örneğin:
> d <- data.frame(subject = c(1,2,3,4,5,6,7,8,9,10,11),
+ hours.per.day = c("1", "2 hours", "2 hr", "2hr", "3 hrs", "1-2", "15 min", "30 mins", "a few hours", "1 hr 30 min", "1 hr/week"))
> d
subject hours.per.day
1 1 1
2 2 2 hours
3 3 2 hr
4 4 2hr
5 5 3 hrs
6 6 1-2
7 7 15 min
8 8 30 mins
9 9 a few hours
10 10 1 hr 30 min
11 11 1 hr/week
hours.per.day
belirli bir etkinliğe harcanan günlük ortalama saat sayısı anlamına gelir, ancak elimizde tam olarak konunun yazdığı şeydir. Belirsiz yanıtlarla ne yapacağım konusunda bazı kararlar verdiğimi ve toplanan değişkeni hours.per.day2
aşağıdaki gibi istediğimizi varsayalım .
subject hours.per.day hours.per.day2
1 1 1 1.0000000
2 2 2 hours 2.0000000
3 3 2 hr 2.0000000
4 4 2hr 2.0000000
5 5 3 hrs 3.0000000
6 6 1-2 1.5000000
7 7 15 min 0.2500000
8 8 30 mins 0.5000000
9 9 a few hours 3.0000000
10 10 1 hr 30 min 1.5000000
11 11 1 hr/week 0.1428571
Vaka sayısının oldukça fazla olduğunu varsayarsak (1000 diyelim) ve deneklerin sevdikleri herhangi bir şeyi yazmakta özgür olduklarını bilerek buna yaklaşmanın en iyi yolu nedir?
new_var[by.hand] <- c(2, 1, ...)
ileby.hand
varlıkTRUE
elde gerçekleştirilir durumlar için?