将功能应用于S4中的所有插槽。
当然,可以通过slotNames()
上的for循环来完成。但是我很好奇它是否可以向量化的方式完成。
答案 0 :(得分:0)
通常,不可能以向量化的方式对插槽进行操作,因为插槽可能具有任何类。如果一个类具有结构
slotA = "factor"
slotB = "integer"
slotC = "numeric"
然后,即使您可能对所有这些函数都应用相同的(泛型)函数(例如summary
),调用的实际方法也会有所不同。该任务只是不可矢量化的,甚至可以对矢量“拖地板,洗车和吸尘地毯”的命令集进行矢量化处理,即使它们可能都共享通用功能clean
—您需要拖把一项任务是海绵,另一项是海绵,第三项是真空吸尘器。 (与命令集“在卧室,走廊和休息室中的三块地毯上抽真空”相反),可以 将其矢量化到一定程度—您不必将真空吸尘器开箱即用。三遍,收起三遍,就可以做一次)
如果您可以保证所有插槽都属于同一类,则矢量化会变得更加容易,但是如果是这种情况,为什么该对象具有它所具有的结构?如果需要使用S4,则只需定义一个包含列表,矩阵或数组的简单类,然后根据需要使用sapply
或apply
。