代码之家  ›  专栏  ›  技术社区  ›  Lin Jing

如何在函数中将参数用作字符?

  •  0
  • Lin Jing  · 技术社区  · 4 年前

    举一个最小的例子。

    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告诉我没有找到对象“Price”。如何解决这个问题?

    此外,如何将y作为表示价格均值和标准差的字符?

    1 回复  |  直到 4 年前
        1
  •  0
  •   Lin Jing    4 年前

    价格不是可变的,你需要 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")