在将dplyr::summarise()
与across()
函数一起使用时,可以混合使用列表和公式语法。
dplyr::summarise()
函数用于对数据进行汇总操作,而across()
函数用于对多个列进行相同的操作。通过将这两个函数结合使用,可以对多个列进行相同的汇总操作。
在使用across()
函数时,可以使用列表语法或公式语法来指定要操作的列。列表语法使用c()
函数将列名组合成一个列表,而公式语法使用~
符号来表示要操作的列。
例如,假设我们有一个数据框df,其中包含了三个数值型列A、B和C,我们想要计算这三列的平均值和标准差。可以使用以下代码:
library(dplyr)
df <- data.frame(A = c(1, 2, 3),
B = c(4, 5, 6),
C = c(7, 8, 9))
df %>%
summarise(across(c(A, B, C), list(mean = mean, sd = sd)))
上述代码中,across(c(A, B, C), list(mean = mean, sd = sd))
表示对列A、B和C进行操作,其中mean表示计算平均值,sd表示计算标准差。通过使用列表语法,我们可以同时指定要进行的操作和要操作的列。
另外,我们也可以使用公式语法来实现相同的效果:
df %>%
summarise(across(c(A, B, C), ~ list(mean = mean(.), sd = sd(.))))
上述代码中,~ list(mean = mean(.), sd = sd(.))
表示对每个列应用相同的操作,其中mean表示计算平均值,sd表示计算标准差。通过使用公式语法,我们可以更加灵活地指定要进行的操作。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云