1
我想跨數據幀的列執行操作,其中輸出取決於兩個值之間的比較。在行或列操作中進行比較R
我的數據幀dat
佈置是這樣的:
region value1
a 0
a 0
a 6
a 7
a 3
a 0
a 4
b 5
b 1
b 0
我想創建基於在整數因子的值的矢量。每當區域值變化或每次value1
爲0時,係數值都應該遞增。因此,在這種情況下,我想要的矢量將等於c(1, 2, 2, 2, 2, 3, 3, 4, 4, 5)
。
我有代碼,以使該遞增只有當value1
爲0的一個因素向量:
fac <- as.factor(cumsum(dat[,2]==0))
,我有C風格的代碼,獲取大致我想要的載體,但非常緩慢運行在我的整體數據只是普通的醜:
p <- 1
facint <- 1
for (i in 2:length(dat[,2])) {
facint <- c(facint, p)
if (dat[i, 2]==0 || dat[i, 1] != dat[i-1, 1])
p = p+1
}
fac <- as.factor(facint)
所以,我怎麼能在R-編程風格上的每一行操作時完成的操作,如本?
或'cumsum(與(DF,C(0L,DIFF(as.integer(地區))= 0L)|!(值== 0L )))'如果'region'是一個因素。 – 2015-03-18 20:58:16