這個問題是我發佈的前一個問題的延續,但我認識到,當我進行分組時,失敗。 link混合SDcols ifelse和分組變量
我需要計算值變量的均值,每客戶和符號分組,如果事務在一個特定時期發生。
我嘗試:
library(data.table)
client_id <- c("A", "A", "B", "B", "B", "B", "B", "A", "A", "B", "B")
value <- c(10, 35, 20, 30, 50, 40, 30, 40, 30, 40, 10)
period_30 <- c(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0)
period_60 <- c(1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0)
sign <- c("D", "D", "D", "D", "C", "C", "C", "D", "D", "D", "D")
test <- data.frame(client_id, value, period_30, period_60, sign)
result <- setDT(test)[, lapply(.SD, function(i) {ifelse(1 %in% i, mean(test$value), 0)}),
.SDcols = period_30:period_60,
by=.(client_id, sign)]
有了結果我得到上面的代碼是廢話,但我相信,我是正確的軌道上。我只是不確定如何解決ifelse聲明。
預期的結果是
Client ID average_value_period30 average_value_period60
A 22.5 29
有人嗎?
根據您顯示的數據,該'average_value_period60'爲22.5(如果我沒看錯)爲一的client_ID好 – akrun