You need to enable JavaScript to run this app. 如何在R中搭建包含各行业公司数、股价均值与标准差的统计表
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中搭建包含各行业公司数、股价均值与标准差的统计表

分行业整合股票价格统计指标的实现方法

前置注意事项

你之前写的均值计算代码存在拼写偏差:mean(CleanStock$Price)里的数据集名少了末尾的s,和你实际的CleanStocks对象不匹配,运行时会直接报错,需要修正为CleanStocks$Price。

核心实现逻辑是按行业分组统一计算所有需要的统计值,不需要单独跑table计数后再手动拼接均值、标准差结果,可完全避免行业顺序错位、数值不匹配的问题,以下是两种常用的可直接运行的实现路径:

基础R原生实现(无需安装额外扩展包)

直接使用原生的aggregate()函数完成分组聚合,一步生成完整统计表:

# 按行业分组,同步计算组内公司数量、股票价格均值、价格标准差
sector_summary <- aggregate(
  Price ~ Sector,
  data = CleanStocks,
  FUN = function(group_price) {
    c(
      company_num = length(group_price), # 与table()输出的计数结果完全等价
      price_mean = mean(group_price, na.rm = TRUE),
      price_sd = sd(group_price, na.rm = TRUE)
    )
  }
)

# 把聚合生成的嵌套结构整理成规整的平面数据框
sector_summary <- do.call(data.frame, sector_summary)
# 重命名列名方便后续读取
colnames(sector_summary) <- c("行业分类", "上市公司数量", "股票价格均值", "股票价格标准差")

dplyr 实现(代码简洁度更高,适配常规数据清洗流程)

如果已经在使用tidyverse生态做数据处理,用分组汇总的写法会更直观,也方便后续追加其他统计指标:

# 提前加载dplyr包(未安装时先运行 install.packages("dplyr"))
library(dplyr)

sector_summary <- CleanStocks %>%
  group_by(Sector) %>% # 按行业字段分组
  summarise(
    company_num = n(), # 组内样本数,与table()输出完全一致
    price_mean = mean(Price, na.rm = TRUE),
    price_sd = sd(Price, na.rm = TRUE)
  ) %>%
  ungroup() # 取消分组标记,避免后续操作受分组状态干扰

运行后的效果说明

两种方法生成的统计表,会自动把你之前通过table(CleanStocks$Sector)得到的所有行业计数(如非必需消费品行业55家、必需消费品25家、能源6家等)和对应组的价格均值、标准差整合到同一张表里,不需要手动跨表拼接。如果需要导出本地文件,直接运行:

write.csv(sector_summary, "分行业股票价格统计结果.csv", row.names = FALSE, fileEncoding = "UTF-8")

可以避免导出的文件出现中文乱码。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 01:54:05