This new option would allow user control of the data.frame class used in all functions that construct SoilProfileCollection objects (i.e. sets aqp_df_class(<SPC>)) or that return data.frame objects.
Most operations on data.table are more efficient, but have both different semantics and syntax. We need to have them to be "opt-in" as some types of data and type mismatches can cause issues compared to regular data.frame, and most users do not expect the data.frame slots of SPCs, or other results, to be data.table objects.
This was split off from #441 which identified an issue that silently had degenerate behavior with base merge but threw informative error with data.table. The switch to data.table for internal use in #442 was deferred pending a more comprehensive approach that allowed more user control (via this issue).
This new option would allow user control of the data.frame class used in all functions that construct SoilProfileCollection objects (i.e. sets
aqp_df_class(<SPC>)) or that return data.frame objects.Most operations on data.table are more efficient, but have both different semantics and syntax. We need to have them to be "opt-in" as some types of data and type mismatches can cause issues compared to regular data.frame, and most users do not expect the data.frame slots of SPCs, or other results, to be data.table objects.
This was split off from #441 which identified an issue that silently had degenerate behavior with base merge but threw informative error with data.table. The switch to data.table for internal use in #442 was deferred pending a more comprehensive approach that allowed more user control (via this issue).