小编let*_*ger的帖子

将 pivot_longer 与宽数据集中的多个成对列一起使用

我有一个看起来像这样的数据集:

input <- 
  data.frame(
    event = 1:2,
    url_1 = c("g1", "g3"),
    name_1 = c("dc", "nyc"),
    url_2 = c("g2", "g4"),
    name_2 = c("sf", "la"))
Run Code Online (Sandbox Code Playgroud)

本质上,有成对的索引列以宽形式粘在一起。我想转换为 long 以提供此输出:

output <- 
  data.frame(
    event = c(1,1,2,2),
    url = c("g1", "g2", "g3", "g4"),
    name = c("dc", "sf", "nyc", "la"))
Run Code Online (Sandbox Code Playgroud)

我想使用pivot_longer. 我试过这个:

input %>% 
  pivot_longer(contains("_"))
Run Code Online (Sandbox Code Playgroud)

如何获得识别列对的功能?

r tidyr tidyverse

5
推荐指数
1
解决办法
408
查看次数

使用purrr迭代时间序列数据

我在数据帧中将一堆时间序列数据堆叠在一起; 一个国家每个地区的一个系列.我想迭代地将seas()函数(从seasonal包中)应用到每个系列中,以便对系列进行季节性调整.为此,我首先要将系列转换为ts类.我正在努力做到这一切purrr.

这是一个最低限度的工作示例:

library(seasonal)
library(tidyverse)
set.seed(1234)
df <- data.frame(region = rep(1:10, each = 20),
             quarter = rep(1:20, 10),
             var = sample(5:200, 200, replace = T))
Run Code Online (Sandbox Code Playgroud)

对于每个区域(由数字索引),我想执行以下操作.这是第一个区域的例子:

tem1 <- df %>% filter(region==1)
tem2 <- ts(data = tem1$var, frequency = 4, start=c(1990,1)) 
tem3 <- seas(tem2)
tem4 <- as.data.frame(tem3$data)
Run Code Online (Sandbox Code Playgroud)

然后我想堆叠输出(即多个tem4数据帧,每个区域一个),以及区域和季度标识符.

那么,区域1的输出开始是这样的:

  final seasonaladj trend irregular region quarter
1    27          27 96.95 -67.97279      1       1
2   126         126 96.95  27.87381      1       2
3   124         124 96.95 …
Run Code Online (Sandbox Code Playgroud)

r time-series purrr

4
推荐指数
1
解决办法
312
查看次数

标签 统计

r ×2

purrr ×1

tidyr ×1

tidyverse ×1

time-series ×1