我有關於如何申請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