2015-06-30 11 views
6

के साथ setkeyv में असामान्य त्रुटि मैं data.table से खुद को बहुत परिचित कर दूंगा, लेकिन setkeyv फ़ंक्शन में एक अजीब त्रुटि आई है जिसे मैं हल नहीं कर सकता।डेटाटेबल

त्रुटि बहुत सीधा है:

keycols<-c("A", "B") 
DT <- data.table(A=1:10, B=91:90) 
setkeyv(DT, keycols) 
# Error in setkeyv(x, cols, verbose = verbose, physical = physical) : 
# 4 arguments passed to .Internal(nchar) which requires 3 

संदर्भ के लिए, यह मेरी sessionInfo():

R version 3.2.0 (2015-04-16) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] cvTools_0.3.2  robustbase_0.92-4 lattice_0.20-31 kernlab_0.9-20 rstan_2.6.0  inline_0.3.14  Rcpp_0.11.6  data.table_1.9.4 

loaded via a namespace (and not attached): 
[1] chron_2.3-47 grid_3.2.0  plyr_1.8.3  stats4_3.2.0 magrittr_1.5 stringi_0.5-4 reshape2_1.4.1 tools_3.2.0 stringr_1.0.0 
[10] DEoptimR_1.0-2 
+0

मैं भी आर 3.2.0 और डेटाटेबल 1.9.4 का उपयोग कर रहा हूं और यह मेरे लिए ठीक काम करता है। शायद आपके कुछ अन्य पैकेज परेशानी कर रहे हैं। – Frank

+1

'data.table' 1.9.4 आर 3.2.0 के साथ मेरे लिए ठीक काम कर रहा था। तब मैंने ggplot और डेटा.table (एक लूप को प्रारंभ करने में विफल होने के बारे में कुछ) के साथ एक अजीब त्रुटि प्राप्त करना शुरू कर दिया। मैंने चुनिंदा पैकेज अपडेट किए, फिर 'data.table' ने काम करना बंद कर दिया। ऐसा लगता है कि कुछ भ्रष्ट हो गया है। आर 3.2.1 में अपग्रेड करने से मेरी समस्या भी ठीक हो गई। – geneorama

उत्तर

10

मैं क्यों यह मामला है के लिए कोई स्पष्टीकरण नहीं है, लेकिन आर 3.2.1 के उन्नयन और प्रत्येक पैकेज के नवीनतम संस्करण को स्थापित करने से समस्या हल हो जाती है। संदर्भ के लिए, यह sessionInfo() अद्यतन करने के बाद है:

R version 3.2.1 (2015-06-18) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] kernlab_0.9-20 rstan_2.6.0  inline_0.3.14  Rcpp_0.11.6  cvTools_0.3.2  robustbase_0.92-4 lattice_0.20-31 data.table_1.9.4 

loaded via a namespace (and not attached): 
[1] chron_2.3-47 grid_3.2.1  plyr_1.8.3  stats4_3.2.1 magrittr_1.5 stringi_0.5-4 reshape2_1.4.1 tools_3.2.1 stringr_1.0.0 
[10] DEoptimR_1.0-2 
+0

कूल। खुशी है कि यह हल हो गया है। – Frank

+1

लगता है कि समस्या 'nchar' फ़ंक्शन में थी। [नई सुविधाओं] में प्वाइंट 3 (http://cran.r-project.org/bin/windows/base/NEWS.R-3.2.1.html) –

+0

+1 यह जून 2015 से v1.9.4 के साथ था, इससे पहले v1.9.6 सितम्बर 2015 में सीआरएएन पर था। मैंने कहा निर्भरता (आर 2.14.1) के साथ v1.9.6 का परीक्षण किया, इसलिए मुझे लगता है कि जब तक आपके पास 1.9.6 है, तो इसे 3.2 3.2 में nchar परिवर्तन से पहले और बाद में काम करना चाहिए कि @AndriyT। इशारा करना। मैंने setkeyv परीक्षणों को दोबारा जांचने के लिए [# 1370] (https://github.com/Rdatatable/data.table/issues/1370) जोड़ा। –