我有关于如何申请R里面的函数到多维数组的问题。部分行和数
例如,考虑这种操作,在这里我减少其他项目的总和的条目。
ppl["2012",,,,,1] <- ppl["2012",,,,,1]
- ppl["2012",,,,,2] - ppl["2012",,,,,3] - ppl["2012",,,,,4]
- ppl["2012",,,,,5] - ppl["2012",,,,,6] - ppl["2012",,,,,7]
- ppl["2012",,,,,8]
虽然在这种情况下减去个别值可能是可行的,但我更喜欢面向矢量的方法。
如果我是熟悉的多维矩阵代数我大概能想出应用时进行必要的操作矩阵,但这是太复杂由于涉及的维数。
sum(ppl["2012",,,,,2:8])
是不是正确的解决方案,因为sum()
总是返回标量。
我可以使用,执行必要的操作循环,但违背定向矢量编程范式。
感谢您的帮助!
编辑:这里是解决原来的问题,基于Andrie的建议: ppl[paste(i),land,,,,1] <- ppl[paste(i),land,,,,1] - apply(ppl[paste(i),land,,,,2:8],c(1,2,3),sum)
您需要使用'apply'与'sum'得到你想要的东西。但是,由于您没有提供数据**的示例**,因此我无法给出确切的代码。 – Henrik 2011-04-12 13:50:11