我有一个hms
的列,但我想将这些时间仅绘制为分钟,因为我显示的是直方图。
问题是:我在1min 10sec
发生了10个事件,在1min 47sec
发生了3个事件,但我想在1分钟内完成所有事件。
我正在绘制提前期,所以我只想显示会议记录。
我希望我的解释很清楚,如果不是,我可以写更多
答案 0 :(得分:1)
如果我理解你的问题,你可以用这样的基础R函数来解决你的问题
library(hms)
test_time <- as.hms(c("10:01:10", "11:01:47",
"12:34:56", "15:01:47", "16:01:23", "18:01:47"))
as.numeric(format(as.POSIXlt(test_time), "%M"))
或者像这样
as.POSIXlt(paste(Sys.Date(), test_time))$min
另一个选项是minutes()
包中的lubridate
函数:
library(lubridate)
minute(test_time)
答案 1 :(得分:0)
如果您更喜欢使用dplyr
,请尝试以下方法:
$(document).ready(function(){
var defaultOptions = { searchDelay: 500,
minChars: 3
};
$('.tokeninput').each(function () {
var field = $(this),
dataOptions = field.data('tokenoptions');
if(dataOptions){
var populateValue = dataOptions.prePopulate;
if(populateValue){
dataOptions = jQuery.grep(dataOptions, function(a) {
return a !== 'prePopulate';
});
populateValue = $.parseJSON(populateValue);
dataOptions = $.extend(defaultOptions, {prePopulate:[populateValue]});
}
defaultOptions = $.extend(defaultOptions, dataOptions);
}
console.log(defaultOptions);
field.tokenInput("url_to_live_search", defaultOptions);
});
});
哪个返回:
library(hms)
library(dplyr)
c("10:01:10", "11:01:47", "12:34:56", "15:01:47", "16:01:23", "18:01:47") %>%
as_hms() %>%
as.POSIXlt() %>%
format("%H:%M") %>%
paste0(., ":00") %>%
as_hms()
此过程仅剥离[1] 10:01:00
[2] 11:01:00
[3] 12:34:00
[4] 15:01:00
[5] 16:01:00
[6] 18:01:00
值,并将其替换为seconds
值。这样应该可以达到您想要的结果。
但是,如果包含日期,则可以使用lubridate
的round_date()
函数:
00
哪个返回:
library(lubridate)
c("2020-08-08 10:01:10", "2020-08-08 11:01:47", "2020-08-08 12:34:56", "2020-08-08 15:01:47", "2020-08-08 16:01:23", "2020-08-08 18:01:47") %>%
ymd_hms() %>%
round_date("minute")