as_factor methods only exists currently for factor and character. Factor vector are associated with character vector. In base R, if you provide numeric, it will be coerce to character before any other operation. I believe forcats is more strict and let the user to the coercion to prevent any issue. It is why you have to pass character vector only in this package right now. However, you can use forcats on already created factor by the base R factor package if you want. However, there is a order issue. (see below) Again, forcats is strict and keep level in vector ordering.