相关疑难解决方法(0)

在一段时间内按组查找平均值并检索同一时期的最后日期

下面是一个可重现的数据表,其中包含四列:

  1. 日期
  2. 类别
  3. 值1
  4. 值2

正如标题所示,我想计算每个类别的value1value2的平均值,并在结果数据框中保留这些类别的最后观察日期.

这是输入:

# Libraries
library(dplyr)
library(data.table)

# Reproducible data table
set.seed(1234)
date <- seq(as.Date("2017-01-01"), by = "month", length.out = 10)
category <- (c('A','A','B','B','C','C','C','C','C', 'C'))
value1 <- sample(seq(from = 91, to = 100, by = 1))
value2 <- sample(seq(from = 51, to = 60, by = 1))
dt <- data.table(date, category, value1, value2)
print(dt)

          date category value1 value2
 1: 2017-01-01        A     92     57
 2: 2017-02-01        A     96     55
 3: 2017-03-01        B     95 …
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr data.table

2
推荐指数
1
解决办法
208
查看次数

汇总多个变量并分配给新的变量名称

我正在使用 'across' 函数来获取一系列变量的汇总统计信息(例如,所有以 'f_' 开头的变量。由于 across 函数会将汇总结果存储回原始变量名称,因此具有多个 cross具有不同汇总函数的函数会覆盖结果(如下所示)。我可以想到一种解决方法,方法是在 summarise() 后重命名变量并 cbind 结果单个表。但是,这看起来很麻烦,我想知道是否有是将一系列汇总结果存储到新变量名称的一种整洁(双关语)方式。

var_stats = data %>% 
  summarise(
    across(starts_with('f_'), max, na.rm = T),
    across(starts_with('f_'), min, na.rm = T)
  )
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

标签 统计

dplyr ×2

r ×2

data.table ×1

dataframe ×1