Jak mogę filtrować zmienną czynnikową za pomocą podwójnej zmiennej w jednym przypadku, ale nie w innym?Filtrowanie zmiennej czynnikowej za pomocą podwójnej zmiennej w R data.table
Przykładowe dane poniżej:
dt <- data.table(id=1:9,
var=factor(81:89))
# > dt
# id var
# 1: 1 81
# 2: 2 82
# 3: 3 83
# 4: 4 84
# 5: 5 85
# 6: 6 86
# 7: 7 87
# 8: 8 88
# 9: 9 89
Dlaczego to działa ...
dt[id %in% 1:7 & var %in% c(82, 84)]
# id var
# 1: 2 82
# 2: 4 84
... ale daje to błąd?
dt[var %in% c(82, 84)]
# Error in bmerge(i, x, leftcols, rightcols, io <- FALSE, xo, roll = 0, :
# x.'var' is a factor column being joined to i.'V1' which is type 'double'.
# Factor columns must join to factor or character columns.`
Wydaje się być nieco niekonsekwentny i może być błędem?
Otrzymuję poprawne wyjście ... – Jaap
Otrzymuję ten sam błąd: R wersja 3.3.0 (2016-05-03), data.table_1.9.6 – zx8754
Proszę dodać wyjście 'sessionInfo()' do twojego posta. Wygląda na to, że zostało to naprawione w data.table_1.9.7. – zx8754