作者locka (locka)
看板R_Language
标题[问题] 用cut对应时辰
时间Fri Nov 27 16:32:04 2015
各位好,也许这是一个笨问题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://webptt.com/cn.aspx?n=bbs/R_Language/M.1448613128.A.E59.html
谢谢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
2F:→ andrew43: 子时切成「子1」和「子2」,之後再把二者改成「子」 11/27 17:32
3F:→ celestialgod: 基本上差不多快,你选择你喜欢的方法即可 11/30 12:58