Как я могу передать аргументы изменения в символ в функции? - PullRequest
0 голосов
/ 28 марта 2020

Приведите минимальный пример.

df <- data.frame("Treatment" = c(rep("A", 2), rep("B", 2)), "Price" = 1:4, "Cost" = 2:5)

Я хочу обобщить данные по обработкам для всех переменных, которые у меня есть, и сложить их вместе, поэтому я сначала определяю функцию, которая делает это для каждой переменной, а затем rbind позже.

SummarizeFn <- function(x,y,z) {
                       x %>% group_by(Treatment) %>% 
                       summarize(n = n(), Mean = mean(y), SD = sd(y)) %>% 
                       cbind("Var" = rep(y, 3)) # add a column to show which variable those statistics belong to. 
                   }
SumPrice <- SummarizeFn(df, df$Price, "Price")

Однако R говорит мне, что объект "Цена" не найден. Как решить эту проблему?

Кроме того, как сделать y символом, обозначающим среднее значение, и sd имеют цену?

1 Ответ

0 голосов
/ 28 марта 2020

Цена не является переменной, вам нужно SummarizeFn(df,df$Price), потому что цена только что определена в вашем списке df

SummarizeFn <- function(x,y,z)
{
df1<-(x %>% group_by(Treatment)
        %>% summarize(n = n(), Mean = mean(y), SD = sd(y))
      )

df1<- df1 %>% mutate ("Var" = z)

return(df1)
}

SumPrice <- SummarizeFn(df, df$Price,"Price")

...