Кажется, что некоторые функции dplyr, включая mutate_if, mutate_all, mutate_at и т. Д., Принудительно вводят data.table в data.frame. Это кажется странным поведением, даже если оно задокументировано в? Mutate_all (в разделе «Значение» указано «data.frame» - но оно не приводит к переходу на data.frames.)
require(dplyr)
require(data.table)
data("iris")
dt <- as.data.table(iris)
class(dt)
[1] "data.table" "data.frame"
class(mutate_if(dt, is.numeric, as.numeric))
[1] "data.frame"
Однако с тибблами этого не происходит:
tb <- as_tibble(iris)
class(tb)
[1] "tbl_df" "tbl" "data.frame"
class(mutate_if(tb, is.numeric, as.numeric))
[1] "tbl_df" "tbl" "data.frame"
Есть ли какой-нибудь способ сохранить data.table или мне нужно принудительно вызывать as.data.table каждый раз, когда я использую одну из функций видимости с измененной областью действия?