R 中不平衡面板上的简单移动平均线

2023-12-25

我正在处理不平衡、间隔不规则的横截面时间序列。我的目标是获得“数量”向量的滞后移动平均向量,并按“主题”分段。

换句话说,假设对Subject_1观察到以下数量: [1,2,3,4,5]。我首先需要将其滞后 1,得到 [NA,1,2,3,4]。

然后我需要取 3 阶移动平均值,得到 [NA,NA,NA,(3+2+1)/3,(4+3+2)/3]

所有科目都需要完成上述操作。

# Construct example balanced panel DF
panel <- data.frame(
  as.factor(sort(rep(1:6,5))),
  rep(1:5,6),
  rnorm(30)                
)
colnames(panel)<- c("Subject","Day","Quantity")

#Make panel DF unbalanced
panelUNB <- subset(panel,as.numeric(Subject)!= Day)
panelUNB <- panelUNB[-c(15,16),]

如果面板是平衡的,我将首先使用包滞后“数量”变量plm和功能lag。 然后我会像这样使用函数来取滞后“数量”的移动平均值rollmean从包装中zoo:

panel$QuantityMA <- ave(panel$Quantity, panel$Subject, FUN = function(x) rollmean(
                     x,3,align="right",fill=NA,na.rm=TRUE))

当应用于平衡“面板”DF 时,这将产生正确的结果。

问题是plm and lag依赖均匀分布的序列来生成索引变量,而 rollapply 要求所有受试者的观察数量(窗口大小)相等。

StackExchange 上有一个带有 data.table 的解决方案,它暗示了我的问题的解决方案:生成不平衡面板数据集的滚动平均值 https://stackoverflow.com/questions/16111242/producing-a-rolling-average-of-an-unbalanced-panel-data-set

也许可以修改该解决方案以产生固定长度的移动平均线,而不是“滚动累积平均线”。


这会给您带来预期的结果吗?

library(reshape2)
library(zoo)

# create time series where each subject have an observation at each time step
d1 <- data.frame(subject = rep(letters[1:4], each = 5),
                 day = rep(1:5, 4),
                 quantity = sample(x = 1:4, size = 20, replace = TRUE))
d1

# select some random observations
d2 <- d1[sample(x = seq_len(nrow(d1)), size = 15), ]
d2

# reshape to wide format with dcast
# -> 'automatic' extension from irregular to regular series for each subject,
# _given_ that all time steps are represented.
# Alternative method below more explicit

# fill for structural missings defaults to NA
d3 <- dcast(d2, day ~ subject, value.var = "quantity")
d3

# convert to zoo time series 
z1 <- zoo(x = d3[ , -1], order.by = d3$day)

################################
# alternative method to extend time series
# time steps to include are given explicitly

# create a zero-dimensional zoo series
z0 <- zoo(, min(d1$day):max(d1$day))

# extend z1 to contain the same time indices as z0 
z1 <- merge(z1, z0) 
################################

# lag, defaults to one unit 
z2 <- lag(x = z1)
z2

# calculate rolling mean with window width 3
rollmeanr(x = z2, k = 3)

# Handling of NAs:
# from ?rollmean:
# "The default method of rollmean does not handle inputs that contain NAs.
# In such cases, use rollapply instead.": 
rollapplyr(data = z2, width = 3, FUN = mean, na.rm = TRUE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 中不平衡面板上的简单移动平均线 的相关文章

  • par(mfrow=c(1,2)) 不显示并排密度图[重复]

    这个问题在这里已经有答案了 par mfrow c 1 2 plot 1 12 log y plot 1 2 xaxs i 然而 当我尝试做并排密度图时 图会单独输出 load the stud recs dataset library U
  • 将循环转换为并行计算的函数

    我正在使用 R 编程语言 我遇到这个问题 我试图找出两个 shapefile 之间的成对交集 即第一个 shapefile 中的每个多边形与第二个 shapefile 中的所有多边形相交的百分比 我想我找到了解决这个问题的基本方法 Load
  • 返回数据帧 R 中的下一行

    我有一个看起来像这样的数据框 kind datetime book 2016 04 23 04 23 00 pen 2016 04 23 04 30 00 toy 2016 04 23 06 45 00 我想为数据集中的每一行返回下一行的日
  • R 中具有稳健回归的异常值

    我正在使用lmrobR 中的函数使用robustbase用于稳健回归的库 我会把它用作 rob reg lt lmrob y 0 dat method MM control a1 当我想返回我使用的摘要时summary rob reg 稳健
  • 计算例如具有多列 data.frames 的列表中的平均值

    我有几个 data frames 的列表 每个 data frame 有几列 通过使用mean mylist first dataframe a我可以得到这个 data frame 中 a 的平均值 但是我不知道如何计算列表中存储的所有 d
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 如何从 R 运行带有特定模块的 perl 脚本?

    我可以从终端运行 perl 脚本 myperlscript pl 没有任何问题 但是 如果我尝试从 RStudio 中运行相同的 perl 脚本 则会出现以下错误 command lt myperlscript pl outputfile
  • 删除ggplot2中的负图区域[重复]

    这个问题在这里已经有答案了 如何删除 ggplot2 中 x 轴和 y 轴下方的绘图区域 请参见下面的示例 我尝试了几个主题元素 panel border panel margin plot margin 但没有任何运气 p lt ggpl
  • R foreach问题(某些进程返回NULL)

    我遇到了问题foreach我正在 R 中使用的程序的一部分 该程序用于运行不同参数的模拟 然后将结果返回到单个列表 然后用于生成报告 当并非所有分配的模拟运行都在报告上实际可见时 就会出现问题 从各方面来看 似乎只有分配的运行的一个子集实际
  • 在 R 中向散点图添加线条

    如何向图表添加线条 我做了以下 dat lt data frame xvar 1 20 rnorm 20 sd 10 yvar 1 20 rnorm 20 sd 10 zvar 1 20 rnorm 20 sd 10 plot dat 1
  • kernlab 中 SVM 训练之外的核矩阵计算

    我正在开发一种新算法 该算法可以生成修改后的核矩阵以用于 SVM 训练 但遇到了一个奇怪的问题 出于测试目的 我比较了使用 kernelMatrix 接口和普通内核接口学习的 SVM 模型 例如 Model with kernelMatri
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • 在 R 中创建虚拟变量,排除某些情况为 NA

    我的数据看起来像这样 V1 V2 A 0 B 1 C 2 D 3 E 4 F 5 G 9 我想创建一个虚拟变量R where 0 1 1 2 3 4 and NA 0 5 9 应该很简单 有人可以帮忙吗 我们可以转换V2 into a fa
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 在 R 中使用 lapply 绘制多个数据帧

    我正在尝试使用 lapply 函数绘制多个数据帧 每个数据帧一个图 但是尽管有关此主题的所有帖子我都找不到答案 因为我不断收到错误 图的输出列表为空 我的数据结构如下 df1 lt mtcars gt group by cyl gt tal
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt
  • 旋转 Markdown 的表格 pdf 输出

    我想将 pdf 上的表格输出旋转 90 度 我正在使用 Markdown 生成报告并kable循环显示表格 如果可以的话我想继续使用kable因为还有很多其他依赖于它的东西我没有包含在这个 MWE 中 这是一个简单的例子 使用iris数据集

随机推荐

  • 如何使用 ASP.NET 授权但允许访问 .css 文件?

  • 通过变量访问类静态函数

    因此 我有一个名为 router 的 PHP 类 它获取 URL 并将其分解以查找请求的组件 操作和任何给定值 然后它加载负责的类 运行操作等等 我现在通过用户类将用户访问集成到类中 对于每个组件 它是一个类 我有一个名为 perms 的静
  • 无法在反应中设置状态

    所以 我只是想在我的反应应用程序中设置状态 只需从axios获取数据 然后设置状态即可 但无论我做什么 状态都不会设置 我尝试将其放入回调中 因为它是异步的 并将其放入我的组件确实安装了并且组件没有更新 唉什么也没有 有什么指示吗 clas
  • MPI_Scatter:为什么我必须在所有进程中分配内存?

    我正在使用 MPI 在 c 中 并行化 Conways 的生命游戏 我必须从输入中读取一个 非常大的 矩阵 然后将其按行分散到切片中 然后并行处理每个切片 我遵循的想法是只让一个进程处理 I O 内容 特别是 进程 0 从文件中读取并将初始
  • 如何动态更改联系表单7提交显示消息

    有人知道如何使用 WordPress contact form 7 插件发布页面链接吗 因此 在您点击 发送 后 应该会弹出 谢谢您的消息 标志 我想在此处添加一个链接 This is where I want to input the p
  • 如何取消订阅可观察对象

    我有一个角度应用程序 我正在读取文件并处理它 并且此处理是可观察的一部分 我有一项返回可观察值的服务 ngbusy subscription 我正在我的组件中订阅这个可观察的内容 可观察对象被分配给一个显示微调器的 ngBusy 现在 即使
  • 了解编辑文本何时完成编辑

    我如何知道我的编辑文本何时完成编辑 就像用户选择下一个框或按软键盘上的完成按钮时一样 我想知道这一点 以便我可以限制输入 看起来文本观察器的 afterTextChanged 发生在输入每个字符之后 我需要对输入进行一些计算 因此我想避免在
  • WPARAM 何时从有签名变为无签名?

    在德尔福6中WPARAM被声明为已签署 WPARAM Longint 在德尔福2010年WPARAM被声明为已签署 WPARAM INT PTR 但在 XE2 中它被声明为未签名 WPARAM UINT PTR 官方窗口定义 http ms
  • Backbone.js 管理 UI 状态/处理 UI 中的选择的方法

    我的问题涉及这个 UI 示例 无法管理各种 UI 视图组件的 选定 状态 例如 我有上面的菜单 用户可以从中进行各种选择 这些选择应导致菜单本身 HL 选择的项目 更新 并且还会导致结果更新 这将基于所做的选择 此外 菜单有不同种类的规则
  • 如果子进程崩溃,QProcess::finished 是否会发出?

    文档说error 如果子进程崩溃 将发出信号 但会finished 也被发出还是只有在成功退出时才发出 是的 它会返回你的状态 如docs http doc qt digia com qt qprocess html ExitStatus
  • Gitlab CI 的 systemd 容器的入口点

    我正在构建一个用于运行 Gitlab CI 作业的 docker 映像 其中一个组件需要 systemd 启动并在容器内运行 这并不是一件小事 但网上有几个指南 所以我设法做到了 该过程的一部分需要在 Dockerfile 中定义此入口点
  • 配置并使用 mongodb 模型服务器进行单元测试

    我必须使用 MongoDB 存储为 Java 代码开发一些 Junit 测试 是否有任何框架 库允许我初始化模拟内存 MongoDB 服务器 这个想法是只测试代码本身 这意味着 在任何机器上独立测试 MongoDB 是否安装和运行 提前致谢
  • C++ 检查项目是否在数组中[重复]

    这个问题在这里已经有答案了 在 C 中 我有一个数组 我试图检查数组中是否有某个元素 这是我的数组 string choices 3 a b c 我想要它 以便如果用户输入存在于数组中 它会打印出 true 因此如果用户输入 b 那么它将打
  • python随机鼠标移动

    我想在指定的矩形区域 坐标x1 y1 x2 y2 x3 y3 x4 y4 进行随机鼠标移动 运动应该是平滑的 随机的 而不仅仅是直线 在指定的时间内随机上 下 左 右 等 您能给我一个可以学习的例子吗 非常感谢 此代码仅适用于 Window
  • 按大小扭曲日志旋转/对文件总数有上限?

    我有一个扭曲的服务器 它生成日志文件并根据大小轮换它们 如果特定文件的文件大小超过 1MB 则会创建新的日志文件 然而 运行几天后 日志文件开始填满我的硬盘 有没有办法对日志轮换进行总体限制 该限制可能基于总大小 例如仅 200GB 的日志
  • 将 Visual Studio C++ 移植到 Linux

    我们有一个不是很复杂但是big 即大量文件 Visual Studio C Win32 控制台在 VS2010 中以 C 0x 标准编写 它不使用任何非标准代码或任何东西 希望如此 我现在想把它移植到 Linux 上 哪种方法是最快的方法
  • 如何让 Angular 5 等待 Injectable 构造函数中使用的 Promise 在构造依赖项或 ngOnInit 之前解析?

    我的 Angular 5 项目中有一个服务 它保存一些配置状态 Injectable export class FooService isIncognito boolean null constructor I want Angular t
  • 代码到接口原则是否适用于实体类?

    我正在尝试在项目中遵循代码到界面 我应该首先创建一个接口 然后为实体类实现该接口吗 我认为这可能使接口优先的方法走得太远 应该忽略实体 这就是我的意思 public interface Address public String getSt
  • Swift 中的类型强制问题

    编辑 这在 Swift 3 中工作得非常好 我们现在都应该使用它了 如果我有两个协议 X and Y where Y实施X 为什么我不能分配一个数组Y到一个类型的变量 X 更奇怪的是 我可以将它一一转换为 X 数组 并且编译得很好 prot
  • R 中不平衡面板上的简单移动平均线

    我正在处理不平衡 间隔不规则的横截面时间序列 我的目标是获得 数量 向量的滞后移动平均向量 并按 主题 分段 换句话说 假设对Subject 1观察到以下数量 1 2 3 4 5 我首先需要将其滞后 1 得到 NA 1 2 3 4 然后我需