看板 R_Language 關於我們 聯絡資訊
[軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 如果讀進來的資料為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
andrew43: 讀入後,用paste()把二欄字串接起來,再丟給 strptime() 09/29 06:18
cywhale: format(), you can get hour or minute by assing %H %M 09/29 08:23
cywhale: s1=strptime("2015-09-28 18:30:25","%Y-%m-%d %H:%M:%S" 09/29 08:26
cywhale: format(s1,"%H:%M"), then you get "18:30" 09/29 08:28
celestialgod: 問題二直接 做一個 strptime("%Y-%m-%d 18:00:00") 09/29 13:07
celestialgod: 跟他比大小就好 09/29 13:07
genki358: 好的,感謝各位。我來試試看 09/29 13:31
genki358: 這樣是否每日都要做一個strptime比較,有無進階方式呢? 09/30 00:12
andrew43: 沒有「每日都要做」喔, 是先產生日期不同時間相同的向量 09/30 00:28
andrew43: 所以創造出的日期時間有不同日期但時間都是1800 09/30 00:29
andrew43: 或著是把 18:00:00 想辦法變成 180000,拿來比數字大小 09/30 00:33
celestialgod: 直接hour(T)*60+minute(T) > 18*60就好 09/30 01:12
celestialgod: T是你strptime的物件 09/30 01:12
genki358: 謝謝各位熱心提供,目前我是先轉換成數字183000再做比較 09/30 12:48
genki358: 其它方式我也會再試試,謝謝各位 09/30 12:49