【发布时间】: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<0]))假设第一列是行名。 -
如果您想查看正面与负面的频率,只需执行
table(m[-1] < 0)或获得更好的输出,可以执行setNames(table(m[-1] > 0), c("Negatives", "Positives")) -
感谢@akrun!我喜欢你的解决方案
-
谢谢@David Arenburg 但是,当我对某个列的正值或负值感兴趣时,您的解决方案会给出所有列或负值或所有列的正值
-
那么
table(m[, 2] < 0)? (例如,如果你想要第二列)
标签: r