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

如何在R中基于share列按plot分组获取最常见的sp变量?

为DataFrame添加分组内最常见的sp列

原始数据

计算出share列后的初始DataFrame:

plot  sp  value  sum  share
0     A  1a      1    3    0.3
1     A  1b      1    3    0.3
2     A  1a      1    3    0.3
3     B  1a      2    4    0.5
4     B  1a      2    4    0.5
5     C  1b      3    9    0.3
6     C  1b      3    9    0.3
7     C  1b      3    9    0.3

需求

为每个plot分组新增dom.sp列,值为该分组内出现次数最多的sp变量值。

实现代码

import pandas as pd

# 构建示例数据(实际使用时替换为你的DataFrame即可)
data = {
    'plot': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
    'sp': ['1a', '1b', '1a', '1a', '1a', '1b', '1b', '1b'],
    'value': [1, 1, 1, 2, 2, 3, 3, 3],
    'sum': [3, 3, 3, 4, 4, 9, 9, 9],
    'share': [0.3, 0.3, 0.3, 0.5, 0.5, 0.3, 0.3, 0.3]
}
df = pd.DataFrame(data)

# 按plot分组,提取每组sp的众数作为dom.sp
dom_sp = df.groupby('plot')['sp'].agg(lambda x: x.mode()[0]).reset_index(name='dom.sp')

# 将结果合并回原DataFrame
result_df = df.merge(dom_sp, on='plot', how='left')

print(result_df)

输出结果

plot  sp  value  sum  share dom.sp
0     A  1a      1    3    0.3    1a
1     A  1b      1    3    0.3    1a
2     A  1a      1    3    0.3    1a
3     B  1a      2    4    0.5    1a
4     B  1a      2    4    0.5    1a
5     C  1b      3    9    0.3    1b
6     C  1b      3    9    0.3    1b
7     C  1b      3    9    0.3    1b

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:40:42