如何解决Error:(下标)逻辑下标太长

时间:2016-05-27 00:21:32

标签: r

为什么这行代码工作正常,

phap        = mymont$QMEAN_ATM_RSHORT_PY > phap.min | iint.photo == 0
phap.lparconow     = mean(mymont$QMEAN_PAR_L_CO     [phap])

虽然这会引发错误?

phap.lparconow     = rowMeans(mymont$QMEAN_PAR_L_CO     [,phap])

我已经阅读了其他类似的问题,但它们非常复杂,我想知道更常用的方法来解决这个问题。 感谢

1 个答案:

答案 0 :(得分:0)

您的代码看起来很可疑:

mymont$QMEAN_PAR_L_CO[,phap]

如果mymont是数据框,那么mymont$QMEAN_PAR_L_CO是一个向量,那么如何通过[, phap]对向量进行子集化?你的意思是mymont[phap, "QMEAN_PAR_L_CO"]吗?

此外,当您使用rowMeans()rowSums()colMeans()colSums时,您必须在子集化时注意可能的尺寸损失。这些函数采用具有维度的矩阵对象。 R FAQ: 7.5 Why do my matrices lose dimensions?已经很好地解决了这个问题。堆栈溢出有很多类似的问题。为了获得稳定性,请在drop = FALSE内添加[ , ]