You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何删除生成的结果表格中重复的日期记录

问题原因

你提取的dates向量存在重复值:原数据集df1中date2 = "2021-07-05"的行有2条,执行subset(df1, date2 > date1, select = date2)$date2后得到的向量里2021-07-05会重复出现2次,map_dfr会对每个元素单独运算,最终就会生成两条日期相同的结果。

解决方案

两种调整方式可选:

方案1:对提取的日期向量直接去重

只需要把获取dates的代码修改为:

dates <- unique(subset(df1, date2 > date1, select = date2)$date2)

其他代码保持不变即可,运行后每个日期仅会返回1条结果。

方案2:改用分组汇总逻辑(更符合tidyverse风格)

可以直接按date2分组完成所有运算,不需要单独提取日期再循环,代码更简洁不易出错:

library(tidyverse)
library(lubridate)

df1 %>%
  filter(date2 > date1) %>%
  group_by(date2) %>%
  summarize(across(starts_with("DR"), sum)) %>%
  pivot_longer(-date2, names_pattern = "DR(.+)", names_to = "Days", values_to = "Numbers") %>%
  mutate(Days = as.numeric(Days)) %>%
  nest(data = -date2) %>%
  mutate(mod = map(data, ~nls(Numbers ~ b1*Days^2+b2, start = list(b1 = 47, b2 = 0), data = .x)),
         coef = map_dbl(mod, ~coef(.x)[2])) %>%
  ungroup() %>%
  mutate(dates = format(ymd(date2), "%d/%m/%Y")) %>%
  select(dates, coef)

两种方案运行后得到的结果一致:

# A tibble: 5 × 2
  dates       coef
  <chr>      <dbl>
1 01/07/2021  12.2
2 02/07/2021  12.4
3 03/07/2021  15.6
4 04/07/2021  13.3
5 05/07/2021  27.9

内容的提问来源于stack exchange,提问作者Antonio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:18:03