在R中的data.frame中删除对角线上方的项目的最佳方法是什么?

时间:2014-07-03 13:11:40

标签: r dataframe diagonal

我有一个data.frame,对角线以下的相关性和对角线以上的p值。我试图找出是否有一种简单的方法来删除对角线上方的p值 - 只是将单元格留空。我猜这将是某种循环函数,它计算列数然后逐行删除值?但我对R来说有点新,并且无法搞清楚。任何建议都会非常有帮助。谢谢!

1 个答案:

答案 0 :(得分:5)

这是单程

> x <- data.frame(matrix(1:25, nrow=5))
> x[upper.tri(x)] <- NA
> x
  X1 X2 X3 X4 X5
1  1 NA NA NA NA
2  2  7 NA NA NA
3  3  8 13 NA NA
4  4  9 14 19 NA
5  5 10 15 20 25

尽管如此,根据您的描述,我认为矩阵将是更合适的数据结构(适用相同的代码)