首页 > 解决方案 > 数据集中的数据在 R 中不规则地移动

问题描述

我正在尝试在数学模型中模拟实验。结果数据集包含来自实验的数据 - 作为输入数据 (inp_exp) 的结果的输出数据 (out_exp) - 和来自实验模拟的数据 - 作为输入数据 (inp_sim) 的结果的输出数据 (out_sim)。

当我将所有数据合并到一个数据框时,可以发现模拟数据集和实验数据集之间的不规则变化。为了能够比较和评估 out_exp 和 out_sim,inp_exp 和 inp_sim 都必须从同一日期开始。这意味着我需要根据输入数据(即 inp_exp[i] == inp_sim[i])将模拟数据(inp_sim 和 out_sim)一起转移。一个问题是输入数据之间的转换是不规则的(见下面的数据)。

有人知道怎么做吗?先感谢您。

原始数据:

inp_exp <- c(0,0,5,1,2,3,4,0,0,0,1,4,8,1,2,0,0,0,0,1,5,8,9,9,1,0,0,0)
inp_sim <- c(0,0,0,5,1,2,3,4,0,0,0,0,0,0,1,4,8,1,2,0,1,5,8,9,9,1,0,0)

out_exp <- c(0,0,0,1,4,5,1,0,0,0,0,1,2,4,1,0,0,0,0,0,2,4,5,8,2,0,0,0)
out_sim <- c(0,0,0,0,0,1,2,1,0,0,0,0,0,0,0,1,2,3,1,0,0,0,1,5,6,4,1,0)
D <- seq(as.Date("2018/10/2"), by = "day", length.out = length(inp_exp))

df <- data.frame(D, inp_exp, inp_sim, out_exp, out_sim)
df

预期结果:

inp_exp <- c(0,0,5,1,2,3,4,0,0,0,1,4,8,1,2,0,0,0,0,1,5,8,9,9,1,0,0,0)
inp_sim <- c(0,0,5,1,2,3,4,0,0,0,1,4,8,1,2,0,0,0,0,1,5,8,9,9,1,0,0,0)

out_exp <- c(0,0,0,1,4,5,1,0,0,0,0,1,2,4,1,0,0,0,0,0,2,4,5,8,2,0,0,0)
out_sim <- c(0,0,0,0,1,2,1,0,0,0,0,1,2,3,1,0,0,0,0,0,0,1,5,6,4,1,0,0)
D <- seq(as.Date("2018/10/2"), by = "day", length.out = length(inp_exp))

df <- data.frame(D, inp_exp, inp_sim, out_exp, out_sim)
df

标签: rdataframeshift

解决方案


推荐阅读