प्रस्तावनाdplyr 0.7.0 संकुल
मैं सामान्य रूप से मेरे संकुल में dplyr
प्रयोग tidyeval। 0.7.0
से पहले, मैं R CMD CHECK
के दौरान नोट्स से बचने के लिए dplyr
क्रियाओं के अंडरस्कोर संस्करणों का उपयोग कर रहा था। उदाहरण के लिए, कोड:
x <- tibble::tibble(v = 1:3, w = 2)
y <- dplyr::filter(x, v > w)
R CMD CHECK
नोट झुकेंगे होगा:
* checking R code for possible problems ... NOTE
no visible binding for global variable ‘v’
तुलना करके, मानक मूल्यांकन संस्करण का उपयोग कर:
y <- dplyr::filter_(x, ~v > w)
ऐसी कोई नोट मिले।
हालांकि, dplyr 0.7.0
में, शब्दचित्र Programming with dplyr का कहना है कि (नोट्स से बचने के लिए) संकुल में dplyr
कार्यों सहित के लिए उपयुक्त वाक्य रचना है:
y <- dplyr::filter(x, .data$v > .data$w)
नतीजतन, news file कहना है कि "प्रत्येक मुख्य की रेखांकित संस्करण क्रिया की अब आवश्यकता नहीं है, और इसलिए इन कार्यों को हटा दिया गया है (लेकिन पिछड़े संगतता के लिए चारों ओर रहते हैं)। "
प्रश्न
शब्दचित्र का कहना है कि इसके बाद के संस्करण नई वाक्य रचना R CMD check
नोट उत्पन्न नहीं करेंगे, "बशर्ते कि आप भी @importFrom rlang .data
साथ rlang::.data
आयात कर लिया।" हालांकि, जब मैं कोड चलाता हूं:
y <- dplyr::filter(x, rlang::.data$v > rlang::.data$w)
Evaluation error: Object `From` not found in data.
क्या यह त्रुटि निम्न के जैसा है?
y <- dplyr::filter(x, v == dplyr::n())
Evaluation error: This function should not be called directly.
अर्थात्, कुछ कार्यों के लिए, उन्हें पैकेज के साथ उपसर्गित करने से त्रुटियां उत्पन्न होती हैं? (कुछ या नहीं, वे निर्यात किया गया है के साथ शायद ऐसा करने के लिए,?)
टिप्पणी
एक अलग रूप में, वहाँ में नए वाक्य रचना के साथ लेखन पैकेज के अनुकूल है dplyr
कार्यों के एक कम वर्बोज़ तरीका है 0.7.0? विशेष रूप से, dplyr >=0.7.0
के लिए वाक्य रचना:
y <- dplyr::filter(x, .data$v > .data$w)
dplyr <0.7.0
वाक्य विन्यास की तुलना में अधिक वर्बोज़ है:
y <- dplyr::filter_(x, ~v > w)
और अधिक चर के रूप में शब्दाडंबर बढ़ जाती है दर्शाया जाता है। हालांकि, मैं अंडरस्कोर संस्करण के साथ कम वर्बोज़ सिंटैक्स का उपयोग नहीं करना चाहता, क्योंकि इसे बहिष्कृत किया गया है।
धन्यवाद। क्या मुझे इस मुद्दे को 'dplyr' या' rlang' के अंतर्गत दर्ज करना चाहिए? – AJP123
आप dplyr पर फ़ाइल कर सकते हैं कृपया – lionel
सब कुछ किया गया। https://github.com/tidyverse/dplyr/issues/2930 – AJP123