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

Our Shangri-La
Ico64
Kittisakdi Choomalee

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

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

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

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

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

 

หลังจากที่ขุดบ่อล่อปลาหลาย ๆ บ่อ ก็ไม่รู้ว่าปลาจะหลงมาติดบ่อบ้างหรือเปล่า แต่ที่แน่ ๆ คนขุดบ่อกลับติดหล่มโคลนบ่อซะเองแล้ว

 

อิอิอิ

 

ไม่เป็นไรครับ น้ำจะมีไม่มีก็ไม่เป็นไร ขอแถขอไถไปเรื่อย ๆ ครับ ออกจากบ่อโน้นไปบ่อนี้จนกว่าจะทะลุไปยังทะเล

 

อิอิอิ

 

ครั้งที่แล้วเราทำโน่นทำนี่มาค้างอยู่ตรงที่เริ่มจะพบว่าข้อมูลที่เราสร้างขึ้นเพื่อตรวจสอบสมมติฐานนั้นเริ่มจะแปลก ๆ ไม่เป็นไปอย่างที่คาดไว้

 

นั่นคอเราพบว่าเมื่อทดสอบความแตกต่างของจำนวนวันของวันที่ตามขั้นตอน ก็จะพบว่า มีข้อมูลจำนวนวันที่แตกต่างดังนี้

 

> table(tmp.date.dif)
tmp.date.dif
-5.75 -4.75 -3.75
    1    29    71

 

จะเห็นว่ามีจำนวนวันที่ต่างกันอยู่ ๓ กลุ่มคือ ๖ วัน ๑ ครั้ง ๕ วัน ๒๙ ครั้ง และ ๔ วัน ๗๑ ครั้ง

 

โดยเฉพาะจำนวนวันที่มีความต่าง ๔ วันนั้นคือปีนั้นจะต้องเป็นอธิกสุรทิน ส่วนถ้าความต่างเป็น ๕ วันนั้นจะเป็นปีปกติสุรทิน แต่ถ้าความต่างเท่ากับ ๖ วัน อันนี้เป็นปริศนาครับ

 

เราลองตรวจสอบข้อมูลที่เกี่ยวข้องก่อนว่ามีอะไรผิดปกติหรือเปล่า

 

จากการที่เราทราบว่าปี ค.ศ. ๒๖๐๐ เป็นปีปกติสุรทิน (หารด้วย ๔ และ ๑๐๐ ลงตัว) ดังนั้นความต่างของวันจากการทดสอบสมมติฐานต้องเป็น ๕ วัน

> test.date$tmp.date.dif[test.date$tmp.y.4==0 & test.date$tmp.y.100==0]
Time difference of -4.75 days
> test.date$tmp.date.dif[test.date$tmp.y==2600]
Time difference of -4.75 days

 

เราพบว่าความต่างของปี ค.ศ. ๒๖๐๐ นั้นถูกต้อง แต่ของปีอื่น ๆ ล่ะ

 

เราทดสอบว่าวันที่ หรือปีที่เราสร้างขึ้นมานั้นถูกต้องหรือไม่ เราทำการลบข้อมูลปีที่เราสุ่มขึ้นมาในครั้งแรกด้วยข้อมูลปีของวันที่ที่สร้างขึ้นใหม่ทั้ง ๓ ข้อมูลคือ tmp.date tmp.date2 และ tmp.date3

 

> test.date$tmp.y - as.numeric(format(test.date$tmp.date, "%Y"))
  [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [80] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> (test.date$tmp.y -543) - as.numeric(format(test.date$tmp.date2, "%Y"))
  [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [80] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> (test.date$tmp.y -543) - as.numeric(format(test.date$tmp.date3, "%Y"))
  [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [80] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

 

จากผลลัพธ์ของทั้ง ๓ บรรทัดคำสั่งพบว่า ผลลัพธ์ทุกค่ามีค่าเท่ากับ ๐ ทั้งหมดนั่นคือ ข้อมูลปีไม่มีข้อมูลใดผิด หรือแตกต่างกัน

ไม่ใช่ข้อมูลปีที่ผิด

 

ดูข้อมูลตัวอย่างว่ามีอะไรผิดบ้างและข้อมูลจำนวนวันที่ต่างของแต่ละข้อมูล

> head(test.date, n=20)
   tmp.y tmp.d tmp.m   tmp.date  tmp.date2  tmp.date3 tmp.date.dif tmp.y.4 tmp.y.100 tmp.y.400
1   2507    14     1 2507-01-14 1964-01-10 1964-01-14   -3.75 days       3         7       107
2   2508    20    12 2508-12-20 1965-12-16 1965-12-20   -3.75 days       0         8       108
3   2509    24    11 2509-11-24 1966-11-20 1966-11-24   -3.75 days       1         9       109
4   2510     7     2 2510-02-07 1967-02-03 1967-02-07   -3.75 days       2        10       110
5   2511     5     6 2511-06-05 1968-05-31 1968-06-05   -4.75 days       3        11       111
6   2512    13     2 2512-02-13 1969-02-08 1969-02-13   -4.75 days       0        12       112
7   2513    25     3 2513-03-25 1970-03-21 1970-03-25   -3.75 days       1        13       113
8   2514     7     2 2514-02-07 1971-02-03 1971-02-07   -3.75 days       2        14       114
9   2515    16     1 2515-01-16 1972-01-12 1972-01-16   -3.75 days       3        15       115
10  2516     3     7 2516-07-03 1973-06-29 1973-07-03   -3.75 days       0        16       116
11  2517     4    12 2517-12-04 1974-11-30 1974-12-04   -3.75 days       1        17       117
12  2518    12     5 2518-05-12 1975-05-08 1975-05-12   -3.75 days       2        18       118
13  2519    17     6 2519-06-17 1976-06-12 1976-06-17   -4.75 days       3        19       119
14  2520    13     5 2520-05-13 1977-05-09 1977-05-13   -3.75 days       0        20       120
15  2521     3     9 2521-09-03 1978-08-30 1978-09-03   -3.75 days       1        21       121
16  2522     7    10 2522-10-07 1979-10-03 1979-10-07   -3.75 days       2        22       122
17  2523    18    12 2523-12-18 1980-12-13 1980-12-18   -4.75 days       3        23       123
18  2524     1    11 2524-11-01 1981-10-28 1981-11-01   -3.75 days       0        24       124
19  2525    14     8 2525-08-14 1982-08-10 1982-08-14   -3.75 days       1        25       125
20  2526     8     3 2526-03-08 1983-03-04 1983-03-08   -3.75 days       2        26       126
> test.date$tmp.date.dif
Time differences in days
  [1] -3.75 -3.75 -3.75 -3.75 -4.75 -4.75 -3.75 -3.75 -3.75 -3.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -4.75 -3.75
 [27] -3.75 -3.75 -4.75 -4.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -3.75 -3.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -3.75 -3.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75
 [53] -4.75 -4.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -3.75 -3.75 -3.75 -3.75 -4.75 -4.75
 [79] -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -4.75 -3.75 -3.75 -3.75 -3.75 -3.75 -3.75 -3.75 -4.75 -4.75 -4.75 -4.75 -4.75 -4.75 -4.75 -4.75 -5.75

 

เราพบว่าข้อมูลจำนวนวันที่ต่างนั้นมีลำดับไม่คงที่ ที่ถูกควรจะเป็นว่า จำนวนวันที่ต่างที่เท่ากับ ๓.๗๕ นั้นต้องตรงกับค่าของ tmp.y.4 ที่เท่ากับ ๐ เท่านั้น เพราะเป็นปีอธิกสุรทิน ยกเว้นปีที่หารด้วย ๑๐๐ ลงตัว (ข้อมูลตัวแปร tmp.y.100 เท่ากับ ๐)

 

หรือข้อมูลจำนวนความต่างของวันที่เท่ากับ ๓.๗๕ นั้นต้องไม่มีข้อมูลต่อกันในปีที่อยู่ติดกัน ต้องเว้นระยะห่างหรือคั่นด้วยข้อมูลจำนวนวันที่ต่างที่เท่ากับ ๔.๗๕ จำนวน ๓ ครั้งก่อนถึงจะเป็นข้อมูลจำนวนวันที่ต่างที่เท่ากับ ๓.๗๕ อีกครั้ง

 

แต่การเรียงลำดับไม่เป็นเช่นนั้น

 

จากข้อมูลจากการทดสอบสมมติฐานเราพบอีกว่ามีข้อมูลจำนวนวันที่ต่างกันที่เท่ากับ ๖ วันซึ่งไม่น่าจะเป็นไปได้

 

เราลองตรวจสอบดูว่า จำนวนวันที่แตกต่างที่เท่ากับ ๖ (-๕.๗๕) นั้นเกิดขึ้นในปีใด

 

> test.date$tmp.date[test.date$tmp.date.dif== -5.75]
[1] "2607-11-11"

 

เป็นข้อมูลของปี ๒๖๐๗

 

ปี ๒๖๐๗ นั้นหารด้วย ๔ หรือ ๑๐๐ หรือ ๔๐๐ ไม่ลงตัวดังนั้นปี ๒๖๐๗ เป็นปีปกติสุรทิน หรือนับง่าย ๆ ว่าเมื่อปี ๒๖๐๐ เป็นปีปกติสุรทิน เนื่องจากหารด้วย ๑๐๐ ลงตัวแต่หารด้วย ๔๐๐ ไม่ลงตัว ปีอธิกสุรทินปีถัดไปต้องเป็นปี ๒๖๐๔  และปี ๒๖๐๘

 

หรือตรวจสอบจากบรรทัดคำสั่ง

> seq(2600,2610,1)%%4
 [1] 0 1 2 3 0 1 2 3 0 1 2
> seq(2600,2610,1)%%100
 [1]  0  1  2  3  4  5  6  7  8  9 10

 

แล้วที่ไม่เป็นไปตามที่เราตั้งสมมติฐานไว้นั้นเป็นเพราะอะไร มีอะไรผิดพลาดหรือ??

 

อิอิอิ

 

สงสัยว่าต้องไปตามพี่โอ๋มาช่วยคิดซะแล้วครับ

 

อิอิอิ

 

หรือว่าไปนอนคิดนั่งคิดไว้หลังสงกรานต์ค่อยมาคิดใหม่อีกรอบ

 

อิอิอิ

 

เราเอง

 

เพลง: Half A Moment
ศิลปิน: Sarah Brightman

Sarah Brightman sings Half A Moment from Andrew Lloyd Weber's musical Jeeves ( 1975).

 

 

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

บันทึกอื่นๆ

ความเห็น

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