r - 将不同的数据应用于 R 中的函数
问题描述
我有以下数据框:
library(tidyverse)
set.seed(1234)
df <- data.frame(
x = seq(1, 100, 1),
y = rnorm(100)
)
我使用不同的结应用平滑样条曲线:
nknots <- seq(4, 15, 1)
output <- map(nknots, ~ smooth.spline(x = df$x, y = df$y, nknots = .x))
我现在需要做的是使用 2 点和 3 点平均值应用相同的函数:
df_2 <- df %>%
group_by(., x = round(.$x/2)*2) %>%
summarise_all(funs(mean))
df_3 <- df %>%
group_by(., x = round(.$x/3)*3) %>%
summarise_all(funs(mean))
总之,我需要将我使用的函数output
与以下数据框一起应用:
- df
- df_2
- df_3
当然,这是一个最小的例子,所以我正在寻找一种有效的方法。最好带purrr
包。
解决方案
使用 lapply 和库zoo
以更简单优雅的方式计算移动平均线:
library(zoo)
lapply(1:3,function(roll){
dftemp <- as.data.frame(rollmean(df,roll))
map(nknots, ~ smooth.spline(x = dftemp$x, y = dftemp$y, nknots = .x))
})
推荐阅读
- r - 警告:无法将 `start` 参数强制转换为格式为 yyyy-mm-dd 的日期字符串
- android - 使用 EGL 和 openGL 渲染到大型 ImageReader 表面,无法渲染出 GL_MAX_VIEWPORT_DIMS 范围
- html - 居中文本在全屏浏览器中有效,但在调整大小或在手机视图中时,它会扰乱外观,如小提琴所示
- python - 将一个 stl 组装成一个大的 stl 文件
- git - 你如何在 Git 中合并两个文件?
- php - Laravel CPanel - 未显示公共文件夹的新图像
- reactjs - react-datepicker 和 react-hook-forms:需要不工作
- php - Laravel 数据库 Eloquent 左连接表
- swiftui - 按最新和最旧对数据进行排序
- php - 如何检查数据库中的图像名称并在 Laravel Blade 模板中为 NULL 时返回静态图像?