首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mean - hour-of-day -of-day和imputation...would这是更容易的时间计算吗?

Mean - hour-of-day -of-day和imputation...would这是更容易的时间计算吗?
EN

Stack Overflow用户
提问于 2012-06-13 04:22:43
回答 1查看 275关注 0票数 1

我正在处理一个数据集,并对NAs进行了多次推算。下面是一个简化的示例,其中我创建了一个新列,其中包含了NAs的原始数据和推算值(即一天中时间的平均值)。代码运行得很好,但是我在日期方面太弱了,我想知道是否有更简单的方法来计算一天中的平均时间日期/时间值?

代码语言:javascript
运行
复制
arrivals <- data.frame(
  ships=c("Glory","Discover","Intrepid","Enchantment","Summit"),
  times=c("8:00","10:00","11:42",NA,"9:20"), stringsAsFactors=FALSE)
sumtime <- sapply(strsplit(as.character(arrivals$times),":"),
  function(x) as.numeric(x[1])*60 + as.numeric(x[2]))
avgtime <- paste(trunc((mean(sumtime, na.rm=TRUE)/60)),":",
  trunc(mean(sumtime, na.rm=TRUE)%%60), sep="")
arrivals$times2 <- arrivals$times
arrivals$times2[is.na(arrivals$times)] <- avgtime
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-13 06:29:50

您可以使用chron包将times列转换为可以取平均值的数字表示:

代码语言:javascript
运行
复制
library(chron)
Arrivals <- arrivals[,c("ships","times")]
# Will give some warnings due to the missing value
Arrivals$times <- chron(times.=paste(Arrivals$times, ":00", sep=""))
Arrivals$times[is.na(Arrivals$times)] <- mean(Arrivals$times,na.rm=TRUE)
        ships    times
1       Glory 08:00:00
2    Discover 10:00:00
3    Intrepid 11:42:00
4 Enchantment 09:45:30
5      Summit 09:20:00
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11004260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档