1

我的任务是获取一组给定数据并将其作为矩阵发布,我已经完成了这项工作。

现在,我已经有了这个带有列名和行名的矩阵,我需要检查矩阵中条目的绝对值是否大于 0.5。如果是这种情况,则需要打印此特定值以及列和行的名称。

此外,所讨论的矩阵是对称的,其对角线的值等于 1,因此不必打印。

您对如何实现它有任何想法吗?我应该将这些结果放入矩阵还是数据框中?这两个哪个更容易实现?

4

1 回答 1

0

一个例子:

set.seed(101)
x <- matrix(rnorm(100),10) 
xx <- cor(x) # correlation matrix
rownames(xx) <- colnames(xx) <- letters[1:10]

找到感兴趣的组合 (|r| > 0.5):

combinations <- levels(interaction(rownames(xx), colnames(xx)))
idx <- abs(xx) > 0.5
diag(idx) <- idx[upper.tri(idx)] <- FALSE
results <- data.frame(combination = combinations[idx], rho = xx[idx])

#   combination        rho
# 1         d.a -0.5739332
# 2         e.a  0.6352977
# 3         f.c  0.5977269
# 4         h.g -0.8208542
于 2012-11-14T12:06:57.710 回答