Nie ma to nic wspólnego z data.table. Po prostu strtrim()
jest dość powolny.
Dopóki operujesz na znakach o pojedynczej szerokości (tzn. Znakach, które nie są na przykład chińskie/japońskie/koreańskie), możesz zamiast tego użyć numeru substr()
, który jest znacznie szybszy.
## Make a long character vector with 5 million elements
x <- rep(state.name, 1e5)
## Speed comparison
system.time(substr(x, 1, 3))
# user system elapsed
# 0.43 0.00 0.44
system.time(strtrim(x, 3))
# user system elapsed
# 44.63 0.03 44.85
## Confirm that both methods return the same output
identical(substr(state.name,1,3), strtrim(state.name,3))
# [1] TRUE
Jeśli on w 'data.table' dlaczego nie używasz' data.table' [składnia] (https://s3.amazonaws.com/assets.datacamp.com/img/blog/ data + table + cheat + sheet.pdf)? Ponadto, jak długo jest "za długi"? – bouncyball
Właśnie znalazłem to pytanie zamknięte, nie do końca rozumiem dlaczego. Ta społeczność jest coraz gorsza. Tutaj jest dobry artykuł na ten temat [zachowanie] (https://hackernoon.com/the-decline-of-stack-overflow-7cb69faa575d#.2aqn8c7db) –