我有一個有3列的數據表'df'。 ID,用餐,時間 每個ID有很多行。按鍵中的數據表的條件總和R
library(data.table)
id = c(1,1,2,2,3,3)
meal = c(1,1,0,0,1,0)
time = c(10,9,12,13,7,15)
df <- data.table(id, meal, time)
> df
id meal time
1: 1 1 10
2: 1 1 9
3: 2 0 12
4: 2 0 13
5: 3 1 7
6: 3 0 15
現在,我想計算每個ID的用餐== 1時的總和。 我當前的代碼是:
df[meal == 1, sum(time), by = "id"]
但是,此代碼EXCUTE餐== 1首先, 所以當一些ID與餐== 1沒有記錄,它會被忽略,而不是返回0
此處省略了id 2。
id V1
1: 1 19
2: 3 7
我該怎麼辦?
在你的問題中包括一個[最小可重現的例子](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)將增加你獲得答案的機會。 – jsb
您可以在計算總和後進行合併。 https://stackoverflow.com/questions/18866796/empty-factors-in-by-data-table –
你可以使用'ifelse' – Bulat