繁体   English   中英

使用R统计软件进行时间序列分析

[英]Time series analysis with R statistical software

分析数据集时出现问题。

786650417, 3197478917, 264665794, **2016-12-01T00:00:00Z**, 1, 4, 94717580778

上面是我的数据集中的一列,我想提取日期和时间(突出显示)并用它创建一个新列。

我尝试了以下代码:

sms <- sms %>%
  mutate(date =str_extract_all(data , "[0-9]+\\-"))

从这段代码中,我得到的日期用(-)分隔,但是不正确。

sms <- sms %>%
  mutate(time =str_extract_all(data , "[0-9]+\\:"))

由此,我得到了时间。

然后,我使用下面的R代码删除了反向逗号。

del <- colwise(function(sms) str_replace_all(sms, '\"', ""))
sms <- del(sms)

因此,最终看起来像这样。

786650417, 3197478917, 264665794, 2016-12-01T00:00:00Z, 1, 4, 94717580778

我从上一行取得了两列。 这两行在下面。

date                    time
c(2016-, 12-)       c(00:, 00:)

但是现在,我无法执行任何预测方法,因为日期和时间的格式不正确。

请帮助我从该记录中提取日期和时间作为正确的类型。

786650417, 3197478917, 264665794, 2016-12-01T00:00:00Z, 1, 4, 94717580778

在我的数据集中,有200万条这样的记录。

我认为您可以将要提取的两列分配给一个变量:

A <- nameOfYourSet$date 

B <- nameOfYOurSet$time

使用$精确确定要考虑的标签(在您的情况下为哪几列)。

然后尝试使用cbind()函数进行一些级联以获得所需的内容:

cbind(A,B)将“粘贴” BA的右侧。

最后,用作.***()函数以获取执行预测所需的正确格式(我不知道所需的格式)。

让我们尝试一下-

library(stringr)
library(chron)
df <- data.frame(raw_data=c("786650417,3197478917,264665794,2016-12-01T00:00:00Z,1,4,94717580778",
                            "786650417,3197478917,264665794,2016-12-01T00:02:17Z,1,4,94717580778",
                            "786650417,3197478917,264665794,2016-12-01T00:28:10Z,1,4,94717580778"))
df$date <- as.Date(str_extract(df$raw_data, "\\d{4}-\\d{2}-\\d{2}"))
df$time <- chron(times=str_extract(df$raw_data, "\\d{2}:\\d{2}:\\d{2}"))
df$datetime <- strptime(paste(str_extract(df$raw_data, "\\d{4}-\\d{2}-\\d{2}"), str_extract(df$raw_data, "\\d{2}:\\d{2}:\\d{2}"), sep = " "), format="%Y-%m-%d %H:%M:%S")
df

注意:时间可以按照收集到的数据的实时时区进行格式化-您只需要给strptime()一个参数,例如tz = "GMT"如果时间戳采用GMT格式),否则默认将选择本地系统的时区(因为在这种情况下是IST)。


不要忘记通过将其标记为正确答案来告诉我们它是否解决了您的问题:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM