मैं है निम्नलिखित समस्या है, जो शायद एक बहुत सरल उपाय है: जब मैं का उपयोगdata.table कहां से पहले द्वारा
library (data.table)
actions = data.table(User_id = c("Carl","Carl","Carl","Lisa","Moe"),
category = c(1,1,2,2,1),
value= c(10,20,30,40,50))
User_id category value
1: Carl 1 10
2: Carl 1 20
3: Carl 2 30
4: Lisa 2 40
5: Moe 1 50
actions[category==1,sum(value),by= User_id]
समस्या है, जाहिरा तौर पर यह पता पंक्तियों को पहले प्रकार जहां श्रेणी 1 है कि और उसके बाद कमांड का उपयोग करता है। तो क्या मैं मिलता है:
User_id V1
1: Carl 30
2: Moe 50
लेकिन क्या मैं चाहता हूँ है:
User_id V1
1: Carl 30
2: Lisa 0
3: Moe 50
मैं उन के बारे में data.table सिर्फ युक्त जानकारी के निर्माण कर रहा हूँ, इसलिए:
users = actions[,User_id,by= User_id]
users$value_one = actions[category==1,.(value_one =sum(value)),by= User_id]$value_one
जो त्रुटियों को फेंकता है या गलत मान शामिल है, जब कुछ ऐसे उपयोगकर्ता हैं जिनके पास कोई प्रविष्टि नहीं है।
आप 'इस्तेमाल कर सकते हैं कार्यों [, योग (ifelse (श्रेणी == 1, मान, 0)), द्वारा = उपयोगकर्ता_आईडी] '। – nrussell
आईआईयूसी [एफआर # 788] से संबंधित (https://github.com/Rdatatable/data.table/issues/788) – MichaelChirico