我有一個有1020行和800列的數據幀(cenMca)。如何求和R中的數據框中特定數量的列?
每4列,我有一組數據,我稱之爲「cen」。所以,從第1列到第4列,我有cen 1,從5到8,我有cen2等等。
我想將cenMca劃分成尺寸等於1020行×4列的200個更小的數據框,並對每行的值進行求和。爲此,我將apply
作爲每行的函數總和,但是,我搜索了以我想要的方式拆分數據幀的方法,但未能這樣做。另外,我不知道如何遍歷這些較小的數據框來保存每個不同的名稱。
所以我認爲,不是將cenMca分成更小的數據框,而是將cenMca中的值相加,並將它們分配給我稱爲sumvec的單個數據框。因此,cenMca中的每4列,我會有一個相應的列sumvec。這給出總和維數等於1020行和200列。
爲了實現這一點,我想:
sumvec = matrix(NA,1020,200)
for (i in 1:1020){
for (j in seq(1,800,4)){
sumvec[i,(j+3)/4] = cenMca[i,j]+cenMca[i,j+1]+cenMca[i,j+2]+cenMca[i,j+3]
}
}
通過行第一for
運行,並且該第二for
貫穿列。第二個for
我的增量是4,因爲那樣我就可以在一個循環中獲得我想要的所有四個值。
我知道這遠沒有效率,但我認爲它會奏效。 當我運行腳本後,我得到了這個:
我試過warnings()
但沒有出現。我所有的總結是「不適用」
我該如何解決這個問題? 有關如何完成這項工作的其他技術將不勝感激。謝謝。
請出示小重複的例子, – akrun