r - 如何在 R 中插入数据

标签 r

我对 R Studio 很陌生,我有一个问题:

我有以下数据:(日期;时间;值)

02.01.11;11:00;576
02.01.11;11:05;552
02.01.11;11:10;672
02.01.11;11:15;720
02.01.11;11:20;336
02.01.11;11:25;408
02.01.11;11:30;288
02.01.11;11:35;228
02.01.11;11:40;288
02.01.11;11:45;288
02.01.11;11:50;288
02.01.11;11:55;312
02.01.11;12:00;180
02.01.11;12:05;120
02.01.11;12:10;120
02.01.11;12:15;228
02.01.11;12:20;276
02.01.11;12:25;228
02.01.11;12:30;444
02.01.11;12:35;612
02.01.11;12:40;300
02.01.11;12:45;288
02.01.11;12:50;300
02.01.11;12:55;336
02.01.11;13:00;240
02.01.11;13:05;252
02.01.11;13:10;192
02.01.11;13:15;180
02.01.11;13:20;192
02.01.11;13:25;432
02.01.11;13:30;912
02.01.11;13:35;960
02.01.11;13:40;936
02.01.11;13:45;1260
02.01.11;13:50;1008

对于一些计算,我需要 1 分钟的时间范围内的它们。 那么有人可以帮助我找出如何插入“缺失”的值,以便它们适合当前的值吗?

我使用此命令来获取数据框:

df <- read_delim("~/values.txt", ";", escape_double = FALSE, col_types = cols(Date = col_date(format = "%d.%m.%y"), Value = col_double(), Time = col_time(format = "%H:%M")), trim_ws = TRUE)

最佳答案

要处理分钟数据,我建议使用包 xts 和包 zoo 中的函数 na.approx。简而言之,您需要创建一个空的分钟数据向量,并将其与原始数据合并。然后,您可以使用 na.approx 来近似缺失值。

#Intial data, not by minute    
datetime <- Sys.time()
date_time_init <- Sys.time()+c(0,3,5,8)*60
df1 <- xts(c(1:4),date_time_init)
> df1
                    [,1]
2017-06-02 03:10:20    1
2017-06-02 03:13:20    2
2017-06-02 03:15:20    3
2017-06-02 03:18:20    4

#Create time sequence by minute
date_time_complete <- seq.POSIXt(from=min(date_time_init),
                                 to=max(date_time_init),by="min") 

#Merge initial data with new time sequence
df2 <- merge(df1,xts(,date_time_complete))
                    df1
2017-06-02 03:10:20   1
2017-06-02 03:11:20  NA
2017-06-02 03:12:20  NA
2017-06-02 03:13:20   2
2017-06-02 03:14:20  NA
2017-06-02 03:15:20   3
2017-06-02 03:16:20  NA
2017-06-02 03:17:20  NA
2017-06-02 03:18:20   4

na.approx(df2)
                         df1
2017-06-02 03:07:24 1.000000
2017-06-02 03:08:24 1.333333
2017-06-02 03:09:24 1.666667
2017-06-02 03:10:24 2.000000
2017-06-02 03:11:24 2.500000
2017-06-02 03:12:24 3.000000
2017-06-02 03:13:24 3.333333
2017-06-02 03:14:24 3.666667
2017-06-02 03:15:24 4.000000

关于r - 如何在 R 中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44321636/

相关文章:

r - 将 R 输出导出到 TXT 文件时如何修复损坏的格式?

r - 仅当 R 中不存在时才在字符串中的逗号后添加空格

r - R pch 中的图例未填充

r - 在 R 中,如何存储插图以便稍后使用 grid.arrange 进行排列?

r - 如何对实数进行采样?

RHadoop:所需的 REDUCE 能力超过集群中支持的最大容器能力

ggplot2中直方图条形的反向填充顺序

替换 dplyr 链所有列中的 NA

r - 将无限值从边缘移开

r - dplyr - 像 rowmeans() 一样使用 mutate()