根据输入变量子集数据框

时间:2018-05-22 00:35:46

标签: r loops for-loop dplyr

我有以下数据框

 df<-data.frame("EmailReach"<-c(1:20), "MobileReach"<-c(21:40))
 names(df)<-c("EmailReach", "MobileReach")

我列出了两个变量如下

  Channel<-c("Email", "Mobile")

我想列出通道变量的各个加权平均值。

for(i in paste0(Channel, "Reach")) 
{print(min(weighted.mean(df[,names(df)%in%paste0(Channel, "Reach")][i])))}

上面的代码给出了加权平均值,但不是变量的名称。我如何完成这个

1 个答案:

答案 0 :(得分:1)

您可以使用dplyr中的summarise_all

require(dplyr)

df %>% summarise_all(weighted.mean)

  EmailReach MobileReach
1       10.5        30.5