मैं अक्सर गन्दा सर्वेक्षण डेटा के साथ काम करता हूं जिसके लिए किसी भी आंकड़े को पूरा करने से पहले बहुत अधिक सफाई की आवश्यकता होती है। मैं एक्सेल में यह "मैन्युअल रूप से" करता था, कभी-कभी एक्सेल फ़ार्मुलों का उपयोग करके, और कभी-कभी प्रविष्टियों को एक-एक करके जाँचता था। मैंने आर में उन्हें करने के लिए स्क्रिप्ट लिखकर इन कार्यों को अधिक से अधिक करना शुरू कर दिया, जो कि बहुत फायदेमंद रहा है (लाभों में यह रिकॉर्ड किया गया है कि क्या किया गया था, गलतियों की संभावना कम है, और डेटा सेट होने पर कोड का पुन: उपयोग करने में सक्षम है अद्यतन)।
लेकिन अभी भी कुछ प्रकार के डेटा हैं जिन्हें मुझे कुशलता से संभालने में परेशानी होती है। उदाहरण के लिए:
> 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
एक निश्चित गतिविधि पर बिताए जाने वाले दिन प्रति घंटे की औसत संख्या होने का मतलब है, लेकिन हमारे पास वही है जो इस विषय ने लिखा है। मान लीजिए कि मैं अस्पष्ट प्रतिक्रियाओं के साथ क्या करना है, इस पर कुछ निर्णय लेता हूं, और मैं hours.per.day2
इस प्रकार के परिवर्तनशील चर चाहता हूं ।
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
यह मानते हुए कि मामलों की संख्या काफी बड़ी है (1000 का कहना है) और यह जानते हुए कि विषय कुछ भी लिखने के लिए स्वतंत्र थे जो उन्हें पसंद थे, यह दृष्टिकोण करने का सबसे अच्छा तरीका क्या है?
new_var[by.hand] <- c(2, 1, ...)
के साथby.hand
किया जा रहा हैTRUE
जिन मामलों में हाथ से किया जाता है के लिए?