r语言cor函数源代码
时间: 2024-01-07 09:01:43 浏览: 93
cor函数是R语言中用于计算两个变量之间的相关性的函数。它的源代码如下:
cor <- function (x, y = NULL, use = c("everything", "all.obs", "complete.obs", "na.or.complete"), method = c("pearson", "kendall", "spearman"))
{
na.method <- pmax(match.arg(use), 2L) - 1L
if (is.list(x))
x <- as.data.frame(x)
else if (!is.data.frame(x)) {
if (is.matrix(x))
x <- as.data.frame(x)
else stop("x is not a matrix or a data frame")
}
if (!is.null(y)) {
if (is.list(y))
y <- as.data.frame(y)
else if (!is.data.frame(y)) {
if (is.matrix(y))
y <- as.data.frame(y)
else stop("y is not a matrix or a data frame")
}
nm <- names(y)
y <- as.matrix(y)
dimnames(y) <- list(rownames(x), nm)
}
else {
y <- x
nm <- names(y)
x <- y
}
UseMethod("cor")
}
这段代码首先定义了cor函数和它的参数x, y, use, method。接着通过match.arg函数处理了缺失值使用的方法。然后对x和y进行了类型转换,将其转换为数据框或者矩阵。如果y为空,则将y赋值为x,并保留x的列名。最后使用UseMethod函数对相关性计算方法进行了调用。整个源代码几乎是对参数进行了一系列预处理,然后调用了相关性计算方法。
阅读全文