आर पैकेज 'dplyr' से फ़ंक्शन mutate
कारकों के लिए एक असाधारण रीसाइक्लिंग सुविधा है, जिसमें ऐसा लगता है कि यह कारक as.numeric
है। निम्न उदाहरण में y
, आप क्या उम्मीद करेंगे हो जाता है, जबकि z
c(1,1)
dplyr में कारकों का अजीब रीसाइक्लिंग :: mutate - बग या सुविधा?
library(dplyr)
df <- data_frame(x=1:2)
glimpse(df %>% mutate(y="A", z=factor("B")))
# Variables:
# $ x (int) 1, 2
# $ y (chr) "A", "A"
# $ z (int) 1, 1
गया है, इस के पीछे किसी भी तर्क है, या यह एक बग है?
(मैं आर 3.1.1 और dplyr 0.3.0.1 उपयोग कर रहा हूँ।)
संपादित करें:
GitHub पर एक मुद्दे के रूप में इस पोस्ट करने के बाद, रोमेन फ्रेंकोइस यह घंटे के भीतर तय! इसलिए उपरोक्त अगर एक समस्या devtools::install_github
का उपयोग कर रहा है नवीनतम संस्करण प्राप्त करने:
library(devtools)
install_github("hadley/dplyr")
और फिर
library(dplyr)
df <- data_frame(x=1:2)
glimpse(df %>% mutate(y="A", z=factor("B")))
# Variables:
# $ x (int) 1, 2
# $ y (chr) "A", "A"
# $ z (fctr) B, B
अच्छा काम रोमेन!
यह व्यवहार वेक्टर रीसाइक्लिंग के कारण प्रतीत होता है। यदि आप लंबाई 2 का एक कारक निर्दिष्ट करते हैं, उदाहरण के लिए, 'झलक (डीएफ%>% उत्परिवर्तन (वाई = "ए", जेड = कारक (सी ("बी", "सी")))' ', चर' z' कारक वर्ग का होगा। –
एक कारक चर प्राप्त करने का एक तरीका 'df%>% do (data.frame (।, Y =" ए ", z = factor (" B "), स्ट्रिंग्सएफ़ैक्टर्स = गलत) होगा ' – akrun
@akrun' mutate 'सही विकल्प नहीं है? कोई अंदाजा? – jazzurro