[問題] 時間函數

看板R_Language作者 (Dark Joker)時間10年前 (2015/09/28 23:33), 編輯推噓0(0015)
留言15則, 4人參與, 最新討論串1/1
[軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 如果讀進來的資料為chr"2012/1/1..."及chr"13:00:00..."共兩欄, 其中將第一欄已用as.Date()轉成日期格式,第二欄則用strptime轉為時間格式, 問題一: strptime似乎會將第二欄自動加上系統今天日期,但想要的是資料原始日期。 問題二: 如果想將2012/1/1~2015/8/30每天的13:00-18:0另新設為下午,18:00-23:00另新設為晚上 ,要用什麼時間函數才能從strptime取出hh:mm:ss並且將下午晚上都設為factor? 有沒有哪位大大可以幫忙解決這個問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.61.243 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1443454415.A.F8B.html

09/29 06:18, , 1F
讀入後,用paste()把二欄字串接起來,再丟給 strptime()
09/29 06:18, 1F

09/29 08:23, , 2F
format(), you can get hour or minute by assing %H %M
09/29 08:23, 2F

09/29 08:26, , 3F
s1=strptime("2015-09-28 18:30:25","%Y-%m-%d %H:%M:%S"
09/29 08:26, 3F

09/29 08:28, , 4F
format(s1,"%H:%M"), then you get "18:30"
09/29 08:28, 4F

09/29 13:07, , 5F
問題二直接 做一個 strptime("%Y-%m-%d 18:00:00")
09/29 13:07, 5F

09/29 13:07, , 6F
跟他比大小就好
09/29 13:07, 6F

09/29 13:31, , 7F
好的,感謝各位。我來試試看
09/29 13:31, 7F

09/30 00:12, , 8F
這樣是否每日都要做一個strptime比較,有無進階方式呢?
09/30 00:12, 8F

09/30 00:28, , 9F
沒有「每日都要做」喔, 是先產生日期不同時間相同的向量
09/30 00:28, 9F

09/30 00:29, , 10F
所以創造出的日期時間有不同日期但時間都是1800
09/30 00:29, 10F

09/30 00:33, , 11F
或著是把 18:00:00 想辦法變成 180000,拿來比數字大小
09/30 00:33, 11F

09/30 01:12, , 12F
直接hour(T)*60+minute(T) > 18*60就好
09/30 01:12, 12F

09/30 01:12, , 13F
T是你strptime的物件
09/30 01:12, 13F

09/30 12:48, , 14F
謝謝各位熱心提供,目前我是先轉換成數字183000再做比較
09/30 12:48, 14F

09/30 12:49, , 15F
其它方式我也會再試試,謝謝各位
09/30 12:49, 15F
文章代碼(AID): #1M2LtF-B (R_Language)
文章代碼(AID): #1M2LtF-B (R_Language)