我的任务是获取一组给定数据并将其作为矩阵发布,我已经完成了这项工作。
现在,我已经有了这个带有列名和行名的矩阵,我需要检查矩阵中条目的绝对值是否大于 0.5。如果是这种情况,则需要打印此特定值以及列和行的名称。
此外,所讨论的矩阵是对称的,其对角线的值等于 1,因此不必打印。
您对如何实现它有任何想法吗?我应该将这些结果放入矩阵还是数据框中?这两个哪个更容易实现?
我的任务是获取一组给定数据并将其作为矩阵发布,我已经完成了这项工作。
现在,我已经有了这个带有列名和行名的矩阵,我需要检查矩阵中条目的绝对值是否大于 0.5。如果是这种情况,则需要打印此特定值以及列和行的名称。
此外,所讨论的矩阵是对称的,其对角线的值等于 1,因此不必打印。
您对如何实现它有任何想法吗?我应该将这些结果放入矩阵还是数据框中?这两个哪个更容易实现?
一个例子:
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