मैं एक विग्नेट "मार्कोव चेन कैसे बनाएं" का पालन करने की कोशिश कर रहा हूं (http://datafeedtoolbox.com/attribution-theory-the-two-best-models-for-algorithmic-marketing-attribution-implemented-in -अपाचे-स्पार्क-एंड-आर/)।

यह ट्यूटोरियल दिलचस्प है, क्योंकि यह उसी डेटा स्रोत का उपयोग कर रहा है जिसका मैं उपयोग करता हूं। लेकिन, कोड का एक हिस्सा "स्पार्क एसक्यूएल कोड" का उपयोग कर रहा है (जो मुझे मेरे पिछले प्रश्न Sparklyr में Concat_ws() फंक्शन गायब है)।

मेरा प्रश्न: मैंने बहुत गुगल किया और इसे स्वयं हल करने का प्रयास किया। लेकिन मुझे नहीं पता कि कैसे, क्योंकि मुझे नहीं पता कि डेटा कैसा दिखना चाहिए (लेखक ने समारोह से पहले और बाद में अपने डीएफ का उदाहरण नहीं दिया)।

मैं कोड के इस भाग को "सामान्य" R कोड (स्पार्क का उपयोग किए बिना) में कैसे बदल सकता हूं (विशेषकर: concat_ws और collect_list फ़ंक्शन परेशानी पैदा कर रहे हैं

वह कोड की इस पंक्ति का उपयोग कर रहा है:

channel_stacks = data_feed_tbl %>%
 group_by(visitor_id, order_seq) %>%
 summarize(
   path = concat_ws(" > ", collect_list(mid_campaign)),
   conversion = sum(conversion)
 ) %>% ungroup() %>%
 group_by(path) %>%
 summarize(
   conversion = sum(conversion)
 ) %>%
 filter(path != "") %>%
 collect()

मेरे पिछले प्रश्न से, मुझे पता है कि हम कोड के एक हिस्से को बदल सकते हैं:

concat_ws () को पेस्ट () फ़ंक्शन से बदला जा सकता है

लेकिन फिर, कोड का एक और हिस्सा इसमें कूद रहा है:

collect_list()  # describtion: Aggregate function: returns a list of objects with duplicates.

मुझे आशा है कि मैंने इस प्रश्न का यथासंभव स्पष्ट वर्णन किया है।

0
R overflow 16 अक्टूबर 2018, 10:53

1 उत्तर

सबसे बढ़िया उत्तर

paste में एक विभाजक के साथ स्ट्रिंग वेक्टर को संक्षिप्त करने की क्षमता है जो collapse पैरामीटर के साथ प्रदान किया गया है।

यह concat_ws(" > ", collect_list(mid_campaign)) के प्रतिस्थापन में गिरावट के रूप में कार्य कर सकता है

channel_stacks = data_feed_tbl %>%
     group_by(visitor_id, order_seq) %>%
     summarize(
       path = paste(mid_campaign, collapse = " > "),
       conversion = sum(conversion)
     ) %>% ungroup() %>%
     group_by(path) %>%
     summarize(
       conversion = sum(conversion)
     ) %>%
     filter(path != "")
1
zacdav 16 अक्टूबर 2018, 08:40