首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据抽取小时

数据抽取小时
EN

Stack Overflow用户
提问于 2017-09-18 16:43:34
回答 3查看 60关注 0票数 0

我是一个在R的新手,我正在寻找一种方法,只提取小时分钟和第二次在我的数据。我试过一些图书馆,但没有成功。

这是我目前的代码:

代码语言:javascript
复制
daily_data = read.csv("/Us/eco.csv", header=TRUE, stringsAsFactors=FALSE)

daily_hour= daily_data$time

daily_hour

我的约会对象是这样的:

代码语言:javascript
复制
 [1] "2016-08-19 17:45:19" "2016-08-19 17:45:19" "2016-08-19 17:45:19" "2016-08-19 17:45:19"
   [5] "2016-08-19 18:59:19" "2016-08-19 18:59:19" "2016-08-19 18:59:19" "2016-08-19 18:59:19"
   [9] "2016-08-19 18:59:19" "2016-08-19 18:59:19" "2016-08-19 18:59:19" "2016-08-19 18:59:19"
  [13] "2016-08-19 19:27:07" "2016-08-19 19:27:07" "2016-08-19 19:27:07" "2016-08-19 19:27:07"
  [17] "2016-08-19 19:27:07" "2016-08-19 19:27:07" "2016-08-19 23:33:46" "2016-08-19 23:33:46"
  [21] "2016-08-19 23:33:46" "2016-08-19 23:33:46" "2016-08-20 07:13:32" "2016-08-20 07:13:32"
  [25] "2016-08-20 07:13:32" "2016-08-20 07:13:32" "2016-08-20 08:52:12" "2016-08-20 08:52:12"
  [29] "2016-08-20 08:52:12" "2016-08-20 08:52:12" "2016-08-20 10:06:53" "2016-08-20 10:06:53"
  [33] "2016-08-20 10:06:53" "2016-08-20 10:06:53" "2016-08-20 10:06:56" "2016-08-20 10:06:56"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-18 16:58:27

hms <- sub('\\d+-\\d+-\\d+ ', '', daily_hour)将提取小时:分钟:秒作为字符串的一部分。如果需要将这些变量分离为其他变量,则有两个选项。

代码语言:javascript
复制
# Option 1
hours <- sub(':\\d+:\\d+', '', hms)
mins <- sub('\\d+:(\\d+):\\d+', '\\1', hms)
secs <- sub('\\d+:\\d+:', '', hms)

# Option 2
daily_hour <- as.POSIXct(daily_hour)
hours <- as.numeric(format(daily_hour, "%H"))
mins <- as.numeric(format(daily_hour, "%M"))
secs <- as.numeric(format(daily_hour, "%S"))
票数 1
EN

Stack Overflow用户

发布于 2017-09-18 16:54:06

假设您的数据:

代码语言:javascript
复制
daily_hour = data.frame(time = c("2016-08-19 17:45:19", "2016-08-19 17:45:36"))

然后将其除以sep = " ",然后取列表中的第二个元素,您将得到hh:mm:ss的向量:

代码语言:javascript
复制
sapply(daily_hour$time, function(x) strsplit(as.character(x), " ")[[1]][2])
票数 0
EN

Stack Overflow用户

发布于 2017-09-18 17:42:52

如果您的日期格式是一致的,也可以使用substr

代码语言:javascript
复制
substr(daily_hour, 12, 19)

substr("2016-08-19 17:45:19", 12, 19)
[1] "17:45:19"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46284373

复制
相关文章

相似问题

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