你如何找到r计算中使用的样本大小?

时间:2013-01-01 20:30:20

标签: r summary sample-size

我正在运行变量之间的相关性,其中一些变量缺少数据,因此每个相关的样本大小可能不同。我尝试了打印和摘要,但这些都没有显示我对每个相关性有多大。这是一个相当简单的问题,我找不到任何答案。

3 个答案:

答案 0 :(得分:3)

像这样..?

x <- c(1:100,NA)
length(x)
length(x[!is.na(x)])

你也可以获得这样的自由度......

y <- c(1:100,NA)
x <- c(1:100,NA)

cor.test(x,y)$parameter

但我认为最好是展示一下如何估算相关性以获得确切帮助的代码。

答案 1 :(得分:0)

以下是如何在矩阵的列中查找成对样本大小的示例。如果要将其应用于数据框的(某些)数字列,请相应地将它们组合,将生成的对象强制转换为矩阵并应用该函数。

# Example matrix:
xx <- rnorm(3000)
# Generate some NAs
vv <- sample(3000, 200)
xx[vv] <- NA
# reshape to a matrix
dd <- matrix(xx, ncol = 3)
# find the number of NAs per column
apply(dd, 2, function(x) sum(is.na(x)))
# tack on some column names
colnames(dd) <- paste0("x", seq(3))

# Function to find the number of pairwise complete observations 
# among all pairs of columns in a matrix. It returns a data frame
# whose first two columns comprise all column pairs

pairwiseN <- function(mat)
{
    u <- if(is.null(colnames(mat))) paste0("x", seq_len(ncol(mat))) else colnames(mat)
    h <- expand.grid(x = u, y = u)

    f <- function(x, y)
           sum(apply(mat[, c(x, y)], 1, function(z) !any(is.na(z))))
    h$n <- mapply(f, h[, 1], h[, 2])
    h
}

# Call it
pairwiseN(dd)

该功能可以轻松改进;例如,您可以设置h <- expand.grid(x = u[-1], y = u[-length(u)])以减少计算次数,您可以返回n x n矩阵而不是三列数据帧等。

答案 2 :(得分:-1)

如果您的变量是名为ab的向量,sum(is.na(a) | is.na(b))之类的内容会对您有帮助吗?