我的数据集类有“时间”功能。该功能属于角色类。 我尽量表现的拿起根据不同的时间slot.For为此频率,我用“一刀切”的功能如下:R的切割功能
FreqPickupTime <- cut(dt$time, breaks = "hour")
但是,我与发生下面的错误。
cut.default(dt $ time,breaks =“hour”)中的错误:'x'必须是数字。
是否有任何解决方案使用此剪切功能的字符功能。
我的数据集类有“时间”功能。该功能属于角色类。 我尽量表现的拿起根据不同的时间slot.For为此频率,我用“一刀切”的功能如下:R的切割功能
FreqPickupTime <- cut(dt$time, breaks = "hour")
但是,我与发生下面的错误。
cut.default(dt $ time,breaks =“hour”)中的错误:'x'必须是数字。
是否有任何解决方案使用此剪切功能的字符功能。
正如MrFlick所说,cut()
不会将其剪切为字符。
说df$time
看起来像:16:42, 12:32, 03:20...
例如:
time <- paste0(round(runif(1000, 0, 23), digits = 0), ':', round(runif(1000, 1, 59), digits = 0))
你可以简单地做:
table(substr(time, 1, regexpr(':', time)-1))
感谢您的示例,但它不适用于我的数据集。我的数据就像“00:28:14”。我想要使用基于时间段00:00- 6:00和6:00-12:00以及12:00-5:00和...... –
的子集数据好吗,您是否记得更改变量在table()调用'table(substr(df $ time,1,regexpr(':',df $ time)-1))''?也许,试着发布'typeof(df $ time)'这里回来?问题是,即使您的数据按照您的说法进行了格式化,此代码也应该可以正常工作。 – Majo
'切()'将无法在字符值工作。你是否在字段中输入日期?然后,您需要将其转换为适当的日期时间值。见'strptime'。 'cut()'函数具有日期时间(POSIXt)值的特殊属性。如果您将示例输入数据包含[可重现示例](http://stackoverflow.com/questions/5963269/how-to-make-a- great-r-reproducible-example),那将会更好,所以我们确切知道什么你的数据看起来像。 – MrFlick