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

在R中基于Band列填充Cause与Fate_Date并保留最早Capture_Date

解决方案

可以使用dplyr包完成需求,步骤如下:

  1. 先确保安装并加载dplyr:
install.packages("dplyr")
library(dplyr)
  1. 分组处理数据:
result_df <- df %>%
  # 按动物编号分组
  group_by(Band) %>%
  # 将组内非空的Cause和Fate_Date值填充到所有行
  mutate(
    Cause = first(na.omit(Cause[Cause != ""])),
    Fate_Date = first(na.omit(Fate_Date))
  ) %>%
  # 筛选每个动物的首次捕获记录
  filter(Capture_Date == min(Capture_Date)) %>%
  # 保留需要的列
  select(Capture_Date, Band, Cause, Fate_Date) %>%
  # 取消分组
  ungroup()

代码说明

  • group_by(Band):将数据按唯一动物编号分组,保证同一只动物的所有记录在同一组内处理。
  • mutate(...):针对Cause和Fate_Date,提取组内第一个非空/非NA的值,赋值给组内所有行,完成填充。
  • filter(Capture_Date == min(Capture_Date)):在每个组中筛选出捕获日期最早的记录,即首次捕获记录。
  • select(...):仅保留需求的核心列:首次捕获日期、动物编号、命运原因、命运日期。

运行后得到的result_df结果示例:

# # A tibble: 5 × 4
#   Capture_Date Band  Cause  Fate_Date 
#   <date>       <chr> <chr>  <date>    
# 1 2025-01-01   803   censor 2026-07-01
# 2 2025-01-01   804   LA     2025-06-01
# 3 2025-01-01   807   LA     2025-08-01
# 4 2025-01-01   808   UNK    2025-09-01
# 5 2025-01-01   809   LA     2025-08-27

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:06:00