2015-06-30 8 views
6

Byłbym znacznie bardziej zaznajomiony z data.table, ale spotkałem się z dziwnym błędem w funkcji setkeyv, której nie mogę rozwiązać.Niezwykły błąd w setkeyv z data.table

Błąd jest bardzo prosta:

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 

Dla porównania, to jest mój 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

Używam również R 3.2.0 i data.table 1.9.4 i to działa dobrze dla mnie. Może niektóre z twoich innych pakietów przysparzają kłopotów. – Frank

+1

'data.table' 1.9.4 działało dobrze dla mnie z R 3.2.0. Wtedy zacząłem dostawać dziwny błąd z ggplot i data.table (coś o tym, że nie udało się zainicjować pętli). Selektywnie zaktualizowałem pakiety, a następnie 'data.table' przestał działać. Czuł się, jakby coś się popsuło. Aktualizacja do wersji 3.2.1 naprawiła również mój problem. – geneorama

Odpowiedz

10

mam żadnego wytłumaczenia, dlaczego tak jest, ale upgrade do 3.2.1 R i instalowanie najnowszej wersji każdego pakietu rozwiązuje problem. W celach referencyjnych jest to mój sessionInfo() po aktualizacji:

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

Cool. Cieszę się, że to rozwiązało. – Frank

+1

wydaje się, że problem był w funkcji 'nchar'. Punkt 3 w [nowe funkcje] (http://cran.r-project.org/bin/windows/base/NEWS.R-3.2.1.html) –

+0

+1 To było od czerwca 2015 z wersją 1.9.4, przed v1.9.6 był na CRAN we wrześniu 2015 r. Testowałem wersję 1.9.6 z podaną zależnością (R 2.14.1), więc myślę, że tak długo, jak masz 1.9.6, powinna ona działać przed i po zmianie nchar w R 3.2.1 ten @AndriyT. punkty dla. Dodałem [# 1370] (https://github.com/Rdatatable/data.table/issues/1370), aby dwukrotnie sprawdzić testy setkeyv. –