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

如何将disease_df关联到weather_df每组最后一行并保留空值

解决方案

可以通过分组后仅保留每周最后一行的病害数据,其余行置空来实现需求,使用dplyr包的分组和条件赋值操作即可完成:

library(dplyr)

# 先执行左关联,再按周分组处理病害数据
combine_df <- weather_df %>%
  left_join(disease_df, by = "week") %>%
  group_by(week) %>%
  # 仅保留每组最后一行的病害强度值,其余设为NA
  mutate(disease_intensity = if_else(row_number() == n(), disease_intensity, NA_real_)) %>%
  ungroup()

代码逻辑说明

  1. 左关联数据:先用left_join按week字段将两个数据集合并,此时每周的所有行都会填充对应的病害强度值;
  2. 按周分组:通过group_by(week)将数据按周分组,便于针对每组单独处理;
  3. 条件赋值:使用row_number()获取组内的行号,n()获取组内的总行数,仅当行号等于总行数(即每周最后一行)时保留病害强度值,其余行设置为NA;
  4. 取消分组:最后用ungroup()取消分组,恢复数据的常规结构。

执行后,combine_df中只有每周的最后一行会显示对应的disease_intensity值,其余行该字段为空白(NA),符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:42:23