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

将dplyr链式操作转为for循环:按颜色分组计算钻石价格与深度相关性

用for循环实现diamonds数据集按color分组计算price与depth的相关性

你已经用dplyr实现了按color分组计算price和depth的相关性,用for循环实现相同功能的核心逻辑是遍历每个唯一分组、筛选对应数据、计算相关性并收集结果,以下是完整实现代码:

library(ggplot2)
data(diamonds)

# 获取所有不重复的color分组值
unique_colors <- unique(diamonds$color)

# 初始化空数据框存储结果
result_df <- data.frame(group = character(), Corr = numeric(), stringsAsFactors = FALSE)

# 遍历每个分组计算相关性
for (col in unique_colors) {
  # 筛选当前color对应的数据集
  group_data <- diamonds[diamonds$color == col, ]
  # 计算price与depth的相关系数
  corr_value <- cor(group_data$price, group_data$depth)
  # 将当前分组的结果追加到数据框
  result_df <- rbind(result_df, data.frame(group = col, Corr = corr_value))
}

# 按group排序,和dplyr输出顺序保持一致
result_df <- result_df[order(result_df$group), ]
print(result_df)

运行后输出结果和你用dplyr得到的完全一致:

group         Corr
1     D  0.013415309
2     E  0.017037228
3     F  0.079294072
4     G -0.032000363
5     H  0.051953865
6     I  0.009288322
7     J  0.086863041

关键细节说明

  • 用unique()提取不重复的color值,确保每个分组仅被处理一次
  • 初始化结果框时设置stringsAsFactors = FALSE,避免字符类型自动转为因子
  • 最后增加排序步骤,是为了和dplyr默认的分组输出顺序对齐,若无需严格顺序可省略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:20:31