为什么这行代码工作正常,
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])
我已经阅读了其他类似的问题,但它们非常复杂,我想知道更常用的方法来解决这个问题。 感谢
答案 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
内添加[ , ]
。