นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

Our Shangri-La
Ico64
Kittisakdi Choomalee

ภาควิชาเวชศาสตร์ชุมชน คณะแพทยศาสตร์ มหาวิทยาลัยสงขลานครินทร์
เครือข่าย
สมาชิก · ติดตาม: 0 · ผู้ติดตาม: 16

อ่าน: 920
ความเห็น: 0

ก้าวย่างทางเดิน ลืมเลือนคืนวัน ดั้นด้นไป: วันที่สับสน ๒๐ [C]

วันที่สับสน คนทำ (ข้อมูล) เวียนหัว

รวมลิงค์บันทึกที่เกี่ยวข้อง

ครั้งที่แล้วเราจบลงตรงที่ ผมสร้างข้อมูลวันที่จำนวน ๑๐๑ ข้อมูล โดยสุ่มวันที่ปีละ ๑ วันเป็นจำนวนทั้งสิ้น ๑๐๑ ปี โดยที่กำหนดให้สุ่มวันที่ปีละ ๑ วันนับจากปีปัจจุบันไป ๕๐ ปีและสุ่มวันที่ปีละ ๑ วันนับถอยถึงไปจากปีปัจจุบัน ๕๐ ปี

ตัวอย่างข้อมูล

> head(tmp.date)
[1] "2507-01-14" "2508-12-20" "2509-11-24" "2510-02-07" "2511-06-05" "2512-02-13"
> tail(tmp.date)
[1] "2602-12-15" "2603-02-13" "2604-06-03" "2605-05-04" "2606-02-07" "2607-11-11"

คำถามที่ถามทิ้งท้ายไว้ในบันทึกที่แล้วคือเราจะนำเอาข้อมูลที่ได้นี้ไปทำอะไร

คำตอบก็คือ

นำมาทดสอบสมมติฐานที่ตั้งไว้ในบันทึกที่แล้วว่า

หากเราเอาวันที่ต้นฉบับลบออกด้วย ๕๔๓ x ๓๖๕.๒๕ จำนวนวันที่ถูกลบออกไปจะเกินไป ๔ วันหากปีของวันที่ต้นฉบับเป็นปีอธิกสุรทิน แต่หากปีของวันที่ต้นฉบับเป็นปีปกติสุรทิน จำนวนวันที่ลบออกไปนั้นจะเกินอยู่ ๕ วัน

เราทดสอบสมมติฐานนี้ครับ

เรานำวันที่ใน tmp.date ลบออกด้วย ๕๔๓ x ๓๖๕.๒๕ แล้วตรวจสอบผลลัพธ์ที่ได้ว่าเป็นไปตามสมมติฐานหรือไม่ที่ หากปีใดเป็นปีปกติสุรทิน ผลต่างต้องเป็น ๕ วัน ส่วนปีใดเป็นปีอธิกสุรทิน ผลต่างจะต้องเท่ากับ ๔ วัน

การตรวจสอบอื่น ๆ นั้นเราค่อยทดสอบในภายหลัง เช่น ปีที่หารด้วย ๑๐๐ หรือ ๔๐๐ ลงตัว เป็นต้น

ผมจะเก็บข้อมูลวันที่ที่ลบด้วย ๕๔๓ x ๓๖๕.๒๕ ไว้ในวัตถุชื่อ tmp.date2

> tmp.date2 <- tmp.date - (543*365.25)
> head(tmp.date2)
[1] "1964-01-10" "1965-12-16" "1966-11-20" "1967-02-03" "1968-05-31" "1969-02-08"

สิ่งที่เราต้องตรวจสอบก็คือ ค่าความต่างระหว่างวันที่ที่ลบด้วย ๕๔๓ x ๓๖๕.๒๕ แล้ว (tmp.date2) กับวันที่ที่สร้างจากการนำเอาวัน เดือน ปีของวันที่ต้นฉบับมาสร้างเป็นวันที่ใหม่ โดยให้นำค่าปี ของวันที่ต้นฉบับมาลบด้วย ๕๔๓ ก่อน แล้วดูว่าผลต่างนั้นต่างกันอยู่ ๔ หรือ ๕ หรือไม่

สิ่งที่เราต้องทำต่อไปคือการสร้างวันที่ขึ้นมาใหม่ โดยใช้วันที่ เดือน และปีที่ลบด้วย ๕๔๓ จากวันที่ต้นฉบับ (tmp.date)

ผมจะเก็บวันที่ที่สร้างขึ้นมาใหม่นี้ในวัตถุที่ชื่อ tmp.date3

> tmp.date3 <- as.Date(paste(format(tmp.date, "%d"),format(tmp.date, "%m"), (as.numeric(format(tmp.date, "%Y")) -543), sep="-"), "%d-%m-%Y")
> head(tmp.date3)
[1] "1964-01-14" "1965-12-20" "1966-11-24" "1967-02-07" "1968-06-05" "1969-02-13"

 

หลังจากนั้นนำวันที่ที่เก็บไว้ใน tmp.date2 และ tmp.date3 มาลบกันและเก็บผลต่างไว้ในวัตถุ tmp.date.dif


> tmp.date.dif <- tmp.date2 -tmp.date3
> head(tmp.date.dif)
Time differences in days
[1] -3.75 -3.75 -3.75 -3.75 -4.75 -4.75
> table(tmp.date.dif)
tmp.date.dif
-5.75 -4.75 -3.75
    1    29    71
> summary(as.numeric(tmp.date.dif))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
 -5.750  -4.750  -3.750  -4.057  -3.750  -3.750

 

เราพบว่าค่าความต่างของวันที่ข้างต้น มีด้วยกัน ๓ ค่าคือ -๕.๗๕, -๔.๗๕ และ -๓.๗๕ โดยมีจำนวน ๑, ๒๙, และ ๗๑ ค่าตามลำดับ

 

ค่าที่เราต้องการคือ ๓.๗๕ และ ๔.๗๕ หรือเท่ากับ ๔ หรือ ๕ วัน

 

แต่ผลลัพธ์ที่ได้กลับมีค่า ๕.๗๕ มา ๑ ค่าหรือ ๖ วัน ซึ่งเป็นค่าที่ไม่อยู่ในช่วงที่เราตั้งสมมติฐานไว้

 

ทำไมเป็นอย่างนี้

 

ถามท้าวฯ ครับ

 

ตอบหน่อยท้าวฯ

 

อิอิอิ

 

เราเอง

 

เพลง: บอกหน่อยได้ไหม
ศิลปิน: นันทิดา แก้วบัวสาย

 

หมวดหมู่บันทึก: เรื่องทั่วไป
สัญญาอนุญาต: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
สร้าง: 11 เมษายน 2557 23:02 แก้ไข: 01 พฤษภาคม 2563 09:37 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ: Ico24 ServiceMan, Ico24 ทดแทน, และ 2 คนอื่น.
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

ไม่มีความเห็น
คุณต้องทำการเข้าระบบก่อนแสดงความเห็น