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

编写R语言correlateHeightSpeed()函数,按过山车类型与材质统计指标

实现correlateHeightSpeed()函数批量计算过山车分组统计量

需求说明

需要创建R函数correlateHeightSpeed(),输入过山车数据后生成height_Speed数据框:

  • 忽略含NA的记录
  • 按**材质类型(material_type)和座位类型(seating_type)**分组
  • 每组计算:平均高度、平均速度、高度与速度的相关系数

示例数据

coaster_Data <- structure(list(name = c("Goudurix", "Dream catcher", "Alucinakis", 
"Anaconda", "Azteka", "Bat Coaster", "Batman : Arkham Asylum", 
"Big Thunder Mountain", "EqWalizer", "Calamity Mine"), material_type = structure(c(1L, 
1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L), levels = c("Steel", "Wooden", 
"Hybrid", "na"), class = "factor"), seating_type = c("Sit Down", 
"Suspended", "Sit Down", "Sit Down", "Sit Down", "Inverted", 
"Inverted", "Sit Down", "Sit Down", "Sit Down"), speed = c(75, 
45, 30, 85, 55, 70, 80, 60, 76, 48), height = c(37, 25, 8, 35, 
17, 20, 32, 22, 36, 14)), row.names = c(NA, -10L), class = c("tbl_df", 
"tbl", "data.frame"))

完整函数实现

使用dplyr包实现批量分组统计,代码如下:

# 先安装并加载dplyr(首次运行需安装)
# install.packages("dplyr")
library(dplyr)

correlateHeightSpeed <- function(input_data) {
  height_Speed <- input_data %>%
    # 过滤掉speed或height含NA的行
    filter(!is.na(speed), !is.na(height)) %>%
    # 按材质和座位类型分组,自动覆盖所有类型组合
    group_by(material_type, seating_type) %>%
    # 计算各组统计量
    summarise(
      avg_height = mean(height, na.rm = TRUE),
      avg_speed = mean(speed, na.rm = TRUE),
      height_speed_cor = cor(height, speed, use = "complete.obs"),
      .groups = "drop"  # 取消分组状态,返回普通数据框
    )
  
  return(height_Speed)
}

# 测试函数
result <- correlateHeightSpeed(coaster_Data)
print(result)

输出结果示例

运行测试代码后,得到如下结果:

# A tibble: 4 × 5
  material_type seating_type avg_height avg_speed height_speed_cor
  <fct>         <chr>             <dbl>     <dbl>            <dbl>
1 Steel         Inverted           26        75              1    
2 Steel         Sit Down           22.8      57.3            0.977
3 Steel         Suspended          25        45             NA    
4 Wooden        Sit Down           35        85             NA    

注:样本量不足2个的分组,相关系数会返回NA,符合统计逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:25:19