ऑपरेटर %+% का उपयोग दो पैकेजों में किया जाता है, जैसे, ggplot2 और crayou

crayon में फ़ंक्शन %+% कभी-कभी काम नहीं करता, मुझे लगता है कि ऑपरेटर %+% को ggplot2 में माना जाता है। मैं crayon::%+% द्वारा पहचानने की कोशिश करता हूं लेकिन यह काम नहीं करता है।

cat(green(
 'I am a green line ' %+%
 blue$underline$bold('with a blue substring') %+%
 ' that becomes green again!'
))

---- टिप्पणियों के आधार पर: मुझे लगता है कि मेरी समझ में कमी के लिए निम्न त्रुटि होती है --------

मैं %+% के बजाय crayon::(backtick)%+%(backtick) का उपयोग करके निम्न कोड चलाने का प्रयास करता हूं

cat(green(
    'I am a green line ' crayon::`%+%`
        blue$underline$bold('with a blue substring') crayon::`%+%`
        ' that becomes green again!'
))

लेकिन निम्न त्रुटि होती है:

  > cat(green(
+     'I am a green line ' crayon::`%+%`
Error: unexpected symbol in:
"cat(green(
    'I am a green line ' crayon"
>         blue$underline$bold('with a blue substring') crayon::`%+%`
Error: unexpected symbol in "        blue$underline$bold('with a blue substring') crayon"
>         ' that becomes green again!'
[1] " that becomes green again!"
> ))
Error: unexpected ')' in ")"
2
Camford Oxbridge 21 नवम्बर 2018, 13:20

1 उत्तर

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

एक विकल्प library(crayon) या requireNamespace(crayon) नहीं है और सभी crayon संदर्भों को पूरी तरह से योग्य बनाना है:

cat(crayon::green(
  'I am a green line ' %c+%
    crayon::blue$underline$bold('with a blue substring') crayon::`%+%`
    ' that becomes green again!'
))

हालांकि यह कष्टप्रद है। इसलिए, आप अपनी ज़रूरत की चीज़ें और नाम बदलें हाथ से आयात भी कर सकते हैं एक अलग, गैर-कोर पैकेज की आवश्यकता के बिना:

`%c+%` <- getFromNamespace("%+%", "crayon") # changed to not break other things
green <- getFromNamespace("green", "crayon")
blue <- getFromNamespace("blue", "crayon")

cat(green(
  'I am a green line ' %c+%
    blue$underline$bold('with a blue substring') %c+%
    ' that becomes green again!'
))
1
hrbrmstr 21 नवम्बर 2018, 12:49