【问题标题】:dim(X) must have a positive length in Rdim(X) 在 R 中必须具有正长度
【发布时间】:2015-02-18 18:59:37
【问题描述】:

我想看看矩阵中有多少个正数和负数 我只是使用以下命令来获取负值,但我得到了错误

apply(m[,2], 2, function(x) length(x[x<0]))

我的矩阵如下所示并命名为 m

    row.names   logFC        AveExpr       t         P.Value    adj.P.Val       B
1   AFFX    0.254330303 -0.0273913479   2.790941    0.005346628 0.9936675   -2.351052
2   AFFX-   0.144249680 -0.0081323315   2.744752    0.006154509 0.9936675   -2.470447
3   AFFX-T  0.129062121 -0.0072936248   2.730567    0.006423832 0.9936675   -2.506720
4   AFFy    0.105893838 -0.0084886157   2.672831    0.007632963 0.9936675   -2.652445
5   AFfm    0.146253131 -0.0123657559   2.617852    0.008970330 0.9936675   -2.788357
6   20uy    1.033582071 0.9319210383    2.476302    0.013425076 0.9936675   -3.125444
7   2196    0.099556431 -0.0061285974   2.451229    0.014392052 0.9936675   -3.183222



**Error in apply(m[, 2], 2, function(x) length(x[x < 0])) : 
  dim(X) must have a positive length**

【问题讨论】:

  • 您正在尝试应用于向量,即m[,2] 是向量。如果你想为整个数据集中的每一列找到这个 apply(df1[-1], 2, function(x) length(x[x&lt;0])) 假设第一列是行名。
  • 如果您想查看正面与负面的频率,只需执行table(m[-1] &lt; 0) 或获得更好的输出,可以执行setNames(table(m[-1] &gt; 0), c("Negatives", "Positives"))
  • 感谢@akrun!我喜欢你的解决方案
  • 谢谢@David Arenburg 但是,当我对某个列的正值或负值感兴趣时,您的解决方案会给出所有列或负值或所有列的正值
  • 那么table(m[, 2] &lt; 0)? (例如,如果你想要第二列)

标签: r


【解决方案1】:

你可以输入:

sum(m<0)

它为您提供整个矩阵的负值数量。如果你想要每一行或每一列,那么

colSums(m<0)

和

rowSums(m<0)

会给你答案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多