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

基于行进距离添加物种累计数量列的R语言技术需求

解决方案

要生成基于行进距离的累计物种数量列,核心逻辑是:初始距离(0)对应的累计数为该点的物种总数,之后每出现一个新的行进距离,累计数在前一个基础上加1。以下是用dplyr工具实现的代码:

步骤说明

  1. 确保数据按distance从小到大排序,保证累计顺序正确
  2. 计算初始距离(0)的物种总数
  3. 基于每个距离的唯一排名,生成累计物种数

代码实现

首先加载dplyr包:

library(dplyr)

处理数据并生成目标列:

data_processed <- data %>%
  # 按距离升序排序,确保累计顺序正确
  arrange(distance) %>%
  mutate(
    # 计算初始点的物种数量
    initial_species_count = n_distinct(binomial[distance == 0]),
    # 为每个唯一距离分配排名
    distance_rank = dense_rank(distance),
    # 生成累计物种数:初始数 + 距离排名 -1(初始距离排名为1,对应初始数)
    cumulative_species = initial_species_count + distance_rank - 1
  ) %>%
  # 移除中间辅助列(可选操作)
  select(-initial_species_count, -distance_rank)

结果验证

  • 所有distance=0的行,cumulative_species值为22,即初始点的物种总数
  • 第一个非0距离(3714.77)对应的累计数为23,第二个非0距离(6249.49)为24,以此类推,完全匹配目标列的样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:35:28