r - 如何在列表中应用 lag 命令?
问题描述
假设我有以下列表
Total<-list(matrix(1:64, nrow = 8), matrix(65:128, nrow = 8), matrix(1:64, nrow = 8), matrix(65:128, nrow = 8),)
我想创建一个列表列表,其中包含原始变量的滞后变量。让我仅使用列表中的一个矩阵来更好地解释我的问题。
library(dplyr)
library(purrr)
library(tidyr)
mat <- Total[[1]]
p <- 3 # number of lags
m <- 5 # values to include
mat_df <- as.data.frame(mat)
# Step 1: Lagged by values by mapping over 1:p
mat_lag <- map(1:p, ~ mutate_all(mat_df, lag, .x)) %>%
# Step 2: Drop rows with missing
map(drop_na) %>%
# Step 3: Now slice. Only m values starting from the last row are kept
map(~ slice(.x, (nrow(.x) - m + 1):nrow(.x)))
# Step 4: Convert to list of matrices
mat_lag %>%
map(as.matrix)
我想将此代码与列表中的所有矩阵一起使用,但我确实想使用该for
命令。我可以使用apply
命令吗?
解决方案
推荐阅读
- mysql - django field datetime set auto_now_add = true 但是mysql错误字段没有默认值
- android - 在 org.gradle.api.internal.artifacts.dsl.dependencies 类型的对象上找不到参数 [directory 'libs'] 的方法 implementation()
- pyspark - 根据条件从 spark 数据框中删除行
- woocommerce - 删除 WooCommerce 结帐时的“已添加到购物车”和“购物车已更新”消息
- swift - 为什么 `nil` 隐式展开可选打印 `nil` 而不会崩溃?
- node.js - 如何在 AWS Lambda 中将 ICU 数据添加到 Node.js?
- bash - 将陷阱添加到在 Travis CI 中运行的测试脚本
- docker - 批处理脚本将所有行作为一个调用执行
- java - 如何使用 Spring Boot 和 Angular 7 配置 CRSF
- java - 有没有办法在构建片段后调用方法?