【问题标题】:correlations function gives an error: unused argument相关函数给出错误:未使用的参数
【发布时间】:2014-11-17 19:58:52
【问题描述】:

作为 R 编程课程的作业,我必须编写一个函数,该函数采用数据文件目录和完整案例的阈值,并计算每个文件中两列(硫酸盐和硝酸盐)之间的相关性,其中完全观察到的病例大于阈值。该函数应返回满足阈值要求的监视器的相关向量

我在 MACOSX 10.9.5 上运行 R 版本 3.1.1(通过 R studio) 这是我的代码

corr <- function(directory, threshold = 0) {
        filenames <- list.files(directory, pattern = "*.csv", full.names = TRUE)
        cors <- numeric()
        for (i in seq_along(filenames)) {
            tempDF <- read.csv(filenames[i])
                if(nrow(tempDF[complete.cases(tempDF),]) > threshold){
                j <- length(cors) + 1
                    cors[j] <- cor(tempDF$sulfate, tempDF$nitrate, use = "na.or.complete")
                        }    
        }
        return(cors)
}

代码的预期输出如下所示:

cr <- corr("specdata", 150) 
head(cr) 
[1] -0.01895754 -0.14051254 -0.04389737 -0.06815956 -0.12350667 -0.07588814

但是,当我在我的代码上运行 cr 时,我得到了错误:

Error in cor(tempDF$sulfate, tempDF$nitrate, use = "na.or.complete") : unused argument (use = "na.or.complete") 

我尝试了各种解决方法,但均无济于事。将 na.or.complete 替换为 na.rmcomplete.cases 会产生相同的错误。一些建议将不胜感激! 运行 args(cor) 输出:函数(​​目录,阈值 = 0)NULL

【问题讨论】:

  • 您能否编辑您的问题以包含args(cor) 的输出?我猜你无意中重新定义了cor
  • 无法复制。除了 Thomas 的建议,请发布您的操作系统和 R 版本。
  • 感谢您的输入,我在编辑中包含了信息
  • rm(cor) 然后再试一次。您在之前的尝试中命名为 corr cor
  • 我怀疑您使用的是不同的 cor 函数(来自不同的包)。 environment(cor) 返回什么?对于我们大多数人来说,它是:&lt;environment: namespace:stats&gt;

标签: r function correlation


【解决方案1】:

函数cor中没有名为na.rm的参数。您应该将代码替换为:

use = "complete.obs"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多