ฉันมักจะจัดการกับข้อมูลการสำรวจที่ยุ่งเหยิงซึ่งต้องมีการทำความสะอาดมากก่อนที่จะสามารถทำสถิติใด ๆ ได้ ฉันเคยทำสิ่งนี้ "ด้วยตนเอง" ใน Excel บางครั้งใช้สูตร Excel และบางครั้งก็ตรวจสอบรายการทีละรายการ ฉันเริ่มทำงานเหล่านี้มากขึ้นเรื่อย ๆ โดยการเขียนสคริปต์เพื่อทำใน R ซึ่งมีประโยชน์มาก (ผลประโยชน์รวมถึงการบันทึกสิ่งที่ทำไปแล้วมีโอกาสผิดพลาดน้อยลงและสามารถนำรหัสมาใช้ใหม่ได้หากชุดข้อมูลเป็น ปรับปรุง)
แต่ยังมีข้อมูลบางประเภทที่ฉันมีปัญหาในการจัดการอย่างมีประสิทธิภาพ ตัวอย่างเช่น:
> 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
หมายถึงจำนวนชั่วโมงเฉลี่ยต่อวันที่ใช้ไปกับกิจกรรมบางอย่าง แต่สิ่งที่เรามีคือสิ่งที่หัวเรื่องเขียน สมมติว่าฉันตัดสินใจเกี่ยวกับการตอบกลับที่คลุมเครือและฉันต้องการตัวแปร tidied 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
สมมติว่าจำนวนผู้ป่วยมีจำนวนมาก (พูด 1,000 คน) และรู้ว่าผู้เรียนมีอิสระที่จะเขียนสิ่งที่พวกเขาชอบวิธีที่ดีที่สุดในการเข้าถึงสิ่งนี้คืออะไร?
new_var[by.hand] <- c(2, 1, ...)
ด้วยby.hand
การเป็นTRUE
สำหรับกรณีที่มีการทำด้วยมือ?