[問題] 用cut對應時辰
各位好,也許這是一個笨問題QQ
先謝謝各位回答。
假設我有一個欄位hr,紀錄從0-23的數字,也就是小時。
現在想要把不同的hr,對應到不同的時辰。
判斷規則為取下限不取上限,
也就是1對應到丑時而不是子時,13對應到未時而不是午時...etc
我的做法是用cut
cut(hr, c(0,1,3,5,7,9,11,13,15,17,19,21,23,24), c("子","丑","寅","卯","辰","巳
","午","未","申","酉","戌","亥","子"),right=FALSE)
因為有23-1的問題,所以我的做法是把它切成0-1、23-24,分開來指定為子時。
可是這樣會有錯誤訊息:
Warning message:
In `levels<-`(`*tmp*`, value = if (nl ==nL) as.character(labels, :
duplicated levels in factors are deprecated
不曉得有沒有其他建議的做法?
謝謝大家。
[程式範例]:
http://ideone.com/w5FX6F
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.110.191
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1448613128.A.E59.html
→
11/27 16:49, , 1F
11/27 16:49, 1F
謝謝C大,我剛剛研究了一下您的code,
直接指定各自的時辰給24個hr也不失為一個好方法!
學到了mapvalues的用法,學習了!
另外我剛剛試出來,只要重新factor,也可以得出正確結果。(忽略警告訊息的話啦)
test <- factor(cut(call_time, c(0,1,3,5,7,9,11,13,15,17,19,21,23,24), c("子","
丑","寅","卯","辰","巳","午","未","申","酉","戌","亥","子"),right=FALSE))
(試著在factor()上色,失敗放棄QQ)
※ 編輯: locka (140.112.110.191), 11/27/2015 17:12:07
※ 編輯: locka (140.112.110.191), 11/27/2015 17:14:03
※ 編輯: locka (140.112.110.191), 11/27/2015 17:15:56
→
11/27 17:32, , 2F
11/27 17:32, 2F
→
11/30 12:58, , 3F
11/30 12:58, 3F
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章