所以这是一个数据框
a<-data.frame(Brand=c("X","Y","Z","d"),Month=1:4,TRP_A=6:9,TRP_B=7:10,TRP_C=10:7)
在自定义函数中,我需要选择一个TRP_A,TRP_B或TRP_C,这将是函数中的参数TRP
因此,假设我调用该函数并且作为参数TRP我输入5,因此将选择列TRP_C。但它将命名为TRP_C,我需要进一步参考,例如如果我想要总和列。
我需要将TRP_C重命名为通用名称,例如Target,因为下次我可能会使用TPR_B左右......但我不知道怎么做,因为重命名功能需要传递原点名称。
aff<-function(brand,TRP) {
a<-a%>%select(Brand,Month,TRP)
total<-a%>%summarise(total=sum(TRP))
total
}
aff("X",5)
答案 0 :(得分:1)
尝试
aff <- function(brand, TRP1){
a %>%
filter(Brand==brand) %>%
select(Brand, Month, TRP1) %>%
setNames(., c('Brand', 'Month', 'TRP')) %>%
summarise(Total=sum(TRP)) }
或者我们可以将setNames
行更改为
aff <- function(brand, TRP1){
a %>%
filter(Brand==brand) %>%
select(Brand, Month, TRP1) %>%
setNames(., sub('\\_.*', '', names(.))) %>%
summarise(Total = sum(TRP))}