data.table возвращает подмножество ошибок для значения столбца - PullRequest
0 голосов
/ 31 мая 2018

Я сталкиваюсь с ошибкой в ​​data.table_1.11.4 при попытке вернуть столбец таблицы данных после подстановки строк на основе значения отдельного столбца.Например,

library(data.table)
set.seed(123)
dt <- data.table(
  x = 1:10,
  y = LETTERS[1:10],
  z = sample(c(T, F), 10, replace = T)
)

> dt
     x y     z
 1:  1 A  TRUE
 2:  2 B FALSE
 3:  3 C  TRUE
 4:  4 D FALSE
 5:  5 E FALSE
 6:  6 F  TRUE
 7:  7 G FALSE
 8:  8 H FALSE
 9:  9 I FALSE
10: 10 J  TRUE

Когда я пытаюсь выполнить подмножество на основе логических значений, я получаю эту ошибку

> dt[z == TRUE, x]
Error in setDT(list(indices = rep.int(indices__, len__), irows = irows)) : 
  object 'CexpandAltRep' not found

Из моего предыдущего опыта и из того, что я видел в виньеткеэто не должно быть так.По-видимому, это относится ТОЛЬКО к случаю поднабора на основе логического значения.Я также получаю странные значения при подстановке значения символа "ИСТИНА".Вот несколько других примеров, которые работают правильно или возвращают странные значения

> # Expected
> dt[y == E, x]
Error in eval(stub[[3L]], x, enclos) : object 'E' not found
> 
> # Expected
> dt[y == "E", x]
[1] 5
> 
> # Unexpected
> dt[z == "TRUE", x]
[1]  1  3  6 10
> 
> # Unexpected
> class(dt[z == "TRUE", x])
[1] "integer"

Есть мысли о том, что может происходить?

Редактировать:

> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

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

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

other attached packages:
[1] data.table_1.11.4

loaded via a namespace (and not attached):
[1] compiler_3.4.1 tools_3.4.1  

1 Ответ

0 голосов
/ 21 июня 2018

Спасибо всем за помощь.Я думаю, что в комментариях была действительно хорошая дискуссия, поэтому я не хочу удалять этот вопрос.Проблема была решена путем обновления до последней версии R.

...