我今天必须做这样的事情
data1 %>%
summarise(
ab1 = fn(a1, b1),
ab2 = fn(a2, b2),
ab3 = fn(a3, b3)
)
# imagine if there are 100 of them
如果fn
是单参数函数我可以这样做
data1 %>%
summarise(across(starts_with("a", fn)))
但不幸的是,我的函数需要两列作为输入。有没有更优雅的方法来实现这一点?
也许您可以尝试
split.default
按列名称将其分成几组,例如,给出
数据示例
您可以使用
map2*
函数来传递两组列。使用来自@ThomasIsCoding 的数据,但由于您的代码使用了不同的函数,
summarise
这意味着它最后将只有一行。另一种方法是使用重塑数据。如果您能克服从较长格式来回重塑的障碍,那么计算将变得微不足道。
这种方法的一个好处是它对列顺序具有很强的鲁棒性,并且您不需要预先指定列前缀,只要您可以使用正则表达式指定一些常规模式。
使用来自@ThomasIsCoding 的数据输出: