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

如何找出R语言数据框中后项Amount增幅最大的连续Name对

解决方法

要找出连续Name对中Amount增幅最大的组合,核心是计算连续行的差值并定位最大值对应的位置,具体步骤如下:

  1. 计算连续Amount的增幅
    使用diff()函数直接计算后一行Amount减去前一行的结果,得到所有连续对的增幅向量:
increases <- diff(df$Amount)

此时increases的值为c(3,5,-7,-2),对应题目里的四组增幅。

  1. 定位最大增幅的位置
    用which.max()找到增幅向量中最大值的索引:
max_pos <- which.max(increases)

这里得到的max_pos是2,对应第二组连续对(b和c)。

  1. 提取对应的Name对
    根据索引从原数据框中取出对应的两个Name:
result <- df$Name[c(max_pos, max_pos + 1)]

运行后result即为"b" "c",符合预期结果。

完整代码整合:

Name <- letters[1:5]
Amount <- c(1, 4, 9, 2, 0)
df <- data.frame(Name, Amount)

increases <- diff(df$Amount)
max_pos <- which.max(increases)
result <- df$Name[c(max_pos, max_pos + 1)]

print(result)

为什么table()和count()没用?

table()和count()都是用来统计数据中各类别的频数,和计算连续行的数值差值完全无关,因此无法解决这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:25:17