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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在函数中使用参数作为字符?相关的知识,希望对你有一定的参考价值。

给出一个最小的例子。

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

我想通过对所有变量的处理来汇总数据,并将它们放在一起,因此我定义了一个函数,首先对每个变量执行此操作,然后再对它们进行rbind

SummarizeFn <- function(x,y) 
                       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, Price)

但是,我在这里有两个问题。

首先,R告诉我Error in mean(y): can't find object 'Price'

第二,在最后一部分,cbind(),如何在该列中将变量名称(例如Price)作为字符串传递?双引号肯定不会起作用,我也尝试了paste函数,该函数也不起作用。这该怎么做?

答案

价格不是变量,您需要SummarizeFn(df,df$Price),因为价格只是在列表df中定义的

以上是关于如何在函数中使用参数作为字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用字符串作为参数从 Go 调用 Rust 函数?

在 R 中,如何将参数作为字符串传递给像 plotXtabs2 这样的函数?

如何编写一个将字符串列表作为参数的函数[重复]

如何在 R 中使用颜色十六进制值作为函数参数?

如何在一个条目中将RGB作为单独的参数传递给函数

如何检查 googlemock 中作为 void 指针传递的字符串参数