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

R语言每12行执行一次Spearman相关性分析的代码问题咨询

原代码存在的核心问题
  • 赋值语法错误:首行数据读取的赋值箭头方向反了,R中左赋值统一使用<-,且未写全读取函数名(如read.csv/read.table)。
  • 索引逻辑完全错误:df$[M,cnt]不符合R的索引规则,$运算符用于直接提取单列,不能和[]混用;同时cnt初始值为0,首次取数会得到空值,直接报错。
  • 变量命名不合法:resultM-B中的减号是算术运算符,不能作为变量名使用,会触发语法错误。
  • 窗口提取逻辑错误:循环未按照需求提取连续12行的子集,同时循环内重写了全局的M、B变量,会导致后续迭代数据错误。
  • 无结果存储逻辑:仅打印结果未做存储,最终无法得到完整的82个相关系数集合。
修正后可直接运行的代码
# 读取数据,替换为你实际使用的读取函数和文件路径
df <- read.csv("你的数据文件路径.csv")

# 预分配结果向量,存储82个相关系数,提升运行效率
cor_res <- numeric(82)

# 按12行窗口遍历计算
for (i in seq_along(cor_res)) {
  # 计算当前窗口的起止行号
  start <- (i-1)*12 + 1
  end <- i*12
  # 提取当前窗口的两列数据
  m_sub <- df$M[start:end]
  b_sub <- df$B[start:end]
  # 计算Spearman相关系数并存入结果
  cor_res[i] <- cor(m_sub, b_sub, method = "spearman")
  # 可选:打印当前结果
  cat("第",i,"个窗口相关系数:", cor_res[i], "\n")
}

# 查看全部82个相关系数
print(cor_res)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:06:04