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

R语言cor函数自定义实现问题:返回numeric(0)

R语言corr函数返回numeric(0)的问题修复

问题根源及修正点:

  • complete.cases使用错误
    原代码中cleandata <- complete.cases仅将函数本身赋值给变量,未对读取的数据集计算完整案例逻辑向量。正确写法应为cleandata <- complete.cases(data),这样才能生成每行是否无缺失值的布尔数组,实现有效数据筛选。

  • 路径与文件匹配问题
    此前return(files)返回character(0),说明list.files未找到目标文件:

    • 确认directory参数路径正确(相对路径需对应当前工作目录,建议优先使用绝对路径);
    • 原pattern = "*.csv"匹配逻辑不严谨,改为pattern = "\\.csv$"可精准匹配以.csv结尾的文件,避免误匹配其他后缀文件。
  • 代码细节优化

    • read.csv(files[i], )中的多余逗号可删除,改为read.csv(files[i]);
    • 用seq_along(files)替代seq(files),避免files为空时生成无效序列;
    • 给cor函数添加use = "complete.obs"参数,确保极端情况下仍能正常计算相关系数。

修正后的完整代码:

corr <- function(directory, threshold = 0){
    files <- list.files(path = directory, pattern = "\\.csv$", full.names = TRUE)
    cr <- numeric()
    
    for(i in seq_along(files)){
        data <- read.csv(files[i])
        cleandata <- complete.cases(data)
        data_clean <- data[cleandata, ]
        if (nrow(data_clean) > threshold){
            correlation <- cor(data_clean$sulfate, data_clean$nitrate, use = "complete.obs")
            cr <- append(cr, correlation)
        }
    }
    return(cr)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:15:36