在R中,可以使用dplyr::across
函数在数据框的多个列上应用两个或更多函数来查找加权平均值和方差。
dplyr::across
函数允许我们在一次操作中对多个列进行相同的转换。为了在across
的右侧应用两个或更多函数,我们可以使用list
函数将这些函数组合在一起。
下面是一个示例代码,演示如何使用across
函数在数据框的多个列上应用加权平均值和方差函数:
library(dplyr)
# 创建一个示例数据框
df <- data.frame(
x = c(1, 2, 3),
y = c(4, 5, 6),
weight = c(0.1, 0.2, 0.3)
)
# 使用across函数应用加权平均值和方差函数
result <- df %>%
mutate(
across(
c(x, y),
list(
weighted.mean = ~weighted.mean(., w = weight),
variance = ~var(., w = weight)
)
)
)
# 打印结果
print(result)
在上面的示例中,我们首先加载了dplyr
包,并创建了一个示例数据框df
,其中包含了两列x
和y
,以及一个权重列weight
。
然后,我们使用mutate
函数和across
函数来对x
和y
列应用加权平均值和方差函数。在across
函数中,我们指定了要应用函数的列(c(x, y)
),并使用list
函数将两个函数(weighted.mean
和variance
)组合在一起。
最后,我们将结果保存在result
变量中,并打印出来。
这样,我们就可以在R中使用dplyr::across
函数的右侧应用两个或更多函数来查找加权平均值和方差。对于加权平均值,我们可以使用weighted.mean
函数,并指定权重列;对于方差,我们可以使用var
函数,并指定权重列。
领取专属 10元无门槛券
手把手带您无忧上云