在R中查找表中的前n个元素

时间:2015-10-11 15:50:41

标签: r

我有一个昏暗的数据表(133 x 24) 我只想查看元素大于指定值的表。

 foreach (string filePath in filePaths)
        {
            BarraDeProgresso.Visible = true;
                PegarMeuFicheiro = filePath;
// here is where im tryng to do it. but isn´tworking as i expected.
            lbMostrarItems.Items.Add(String.Format("{0, 5} {1, 30}",PegarMeuFicheiro.Substring(9 + nome.Length + 20, PegarMeuFicheiro.Length - (9 + nome.Length + 20)),"Size"));
            //lbMostrarItems.SelectedIndex = lbMostrarItems.Items.Count - 1;

        }

假设许多值<4且我有10个大于5的值我希望看到:

     C1 .....C24
R1  
...
...
...
R133

对于大于我指定的所有元素。这些代表了我的数据集中需要特别关注的热点。

示例数据

(R1,C11) = 9
(R38,C5) = 11
(R90,C20) = 20
....

1 个答案:

答案 0 :(得分:3)

您可以根据dt的逻辑摘要的属性和值创建新的数据框。

x <- dt >= 5
data.frame(
    row = rownames(x)[row(x)[x]],  
    col = colnames(x)[col(x)[x]],
    val = dt[x]
)
#   row col val
# 1  R1  C1  15
# 2  R1  C2   5
# 3  R2  C2   5
# 4  R3  C2   8
# 5  R3  C3  16
# 6  R4  C4   9

如果你想要有点想象,你可以Map()超过dimnames()

data.frame(Map("[", dimnames(x), list(row(x)[x], col(x)[x])), val = dt[x])
#    R  C val
# 1 R1 C1  15
# 2 R1 C2   5
# 3 R2 C2   5
# 4 R3 C2   8
# 5 R3 C3  16
# 6 R4 C4   9