看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 我想要印出2015年,每個月的第一天和最後一天,前七個月都正常, 但第八個月之後,最後一天就會變成NA [程式範例]: library(lubridate) year_counter = 2015 mon_counter = 1 while (year_counter < 2016){ s_day = ymd("2015-01-01") e_day = ymd("2015-01-31") while (mon_counter < 13) { print(mon_counter) print("star is") print(s_day) print("end is") print(e_day) month(s_day) = month(s_day) + 1 month(e_day) = month(s_day) + 1 day(e_day) = day(s_day) - 1 mon_counter = mon_counter + 1 } year_counter = year_counter + 1 } }環境敘述]: Version 0.99.903–2009-2016 RStudio, Inc. lubridate 1.6.0 [關鍵字]: 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.247.184 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1479398353.A.A02.html
andrew43: 請提供可完整重現的原始碼 11/18 00:05
不好意思,已加上library(lubridate) ※ 編輯: hardy1127 (140.138.48.245), 11/18/2016 08:31:48 ※ 編輯: hardy1127 (140.138.48.245), 11/18/2016 08:46:19
cywhale: 你如果真要這樣寫 先把e_d<-sd; month(ed)<-month(ed)+1 11/18 08:53
cywhale: day(e_day)<-day(e_day)-1 這樣比較保險 NA的問題也許 11/18 08:54
andrew43: 原因是「9月不存在31日」 11/18 08:55
andrew43: 卡點前你強迫8/31再加一個月變9/31... 11/18 08:56
cywhale: 來自78月連續都是31日你隔月減1造成package誤判? 11/18 08:57
andrew43: 題外話,運算邏輯不人性化也有錯,建議這種算法重寫喔 11/18 08:58
andrew43: 不是卡在減一日那行.. ymd("2015-08-31")不可能加一個月 11/18 09:04
hardy1127: 謝謝a大c大,頭腦瞬間通了! 11/18 16:40