Ich beschäftige mich oft mit unordentlichen Umfragedaten, die eine Menge Aufräumarbeiten erfordern, bevor Statistiken erstellt werden können. Früher habe ich das "manuell" in Excel gemacht, manchmal mit Excel-Formeln und manchmal nacheinander. Ich begann, immer mehr dieser Aufgaben zu erledigen, indem ich Skripte schrieb, um sie in R zu erledigen, was sehr vorteilhaft war (zu den Vorteilen gehörte, dass ich ein Protokoll darüber hatte, was getan wurde, weniger Fehlerwahrscheinlichkeit und in der Lage war, Code wiederzuverwenden, wenn der Datensatz vorhanden war Aktualisiert).
Es gibt jedoch noch einige Datentypen, mit denen ich Probleme habe, effizient umzugehen. Beispielsweise:
> 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
soll die durchschnittliche Anzahl von Stunden pro Tag sein, die für eine bestimmte Aktivität aufgewendet wurden, aber wir haben genau das, was das Thema geschrieben hat. Angenommen, ich entscheide, was mit mehrdeutigen Antworten geschehen soll, und ich möchte die aufgeräumte Variable hours.per.day2
wie folgt.
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
Angenommen, die Anzahl der Fälle ist ziemlich groß (sagen wir 1000) und die Versuchspersonen konnten alles schreiben, was sie wollten. Wie kann man das am besten angehen?
new_var[by.hand] <- c(2, 1, ...)
mit zuby.hand
seinTRUE
für die Fälle , die von Hand gemacht werden?