В целом невозможно работать со слотами векторизованным способом, потому что у слотов может быть любой класс.Если класс имеет структуру
slotA = "factor"
slotB = "integer"
slotC = "numeric"
, то даже если вы применяете одну и ту же (универсальную) функцию ко всем из них (скажем, summary
), фактические вызываемые методы будут отличаться.Задача просто не векторизована, как и векторизация набора команд «мыть пол, мыть машину и пылесосить ковер», даже если все они имеют общую функцию clean
- вам нужна швабра для одногозадача, губка для другого и пылесос для третьего.(Сравните это с набором команд «Вакуум три ковра в спальне, коридоре и гостиной», которые можно векторизовать до некоторой степени - вам не нужно вынимать пылесос из коробки трираз и уберите его три раза, вы можете сделать это только один раз)
Если вы можете гарантировать, что все слоты будут принадлежать к одному и тому же классу, тогда будет легче векторизовать, но если это так,почему этот объект имеет структуру, которую он имеет?Если это должен быть S4, тогда просто определите простой класс, который содержит список, матрицу или массив, а затем используйте sapply
или apply
при необходимости.