R将函数的输出分配给变量

R assign the output from a function to a variable

我想做一个类似SAS的函数,宏变量名可以方便的加上其他字符

但是,我现在不能在 R 中执行此操作,例如,在以下语法中,我想创建一个函数,它只获取某个变量的平均值并为该变量分配一个新名称。

sex=c(1,2,3)

rf<-function(x){
    assign(paste("x", "mean",sep=""),mean(x))
    }
rf(sex)

我想得到一个新变量"sexmean",其值为 mean(1,2,3)。

我该怎么办?

使用函数式编程(和 R)执行此操作的方法是:

sexmean <- mean(sex)

如果你真的想要一个具有更改全局变量副作用的函数(这在 R 和一般的函数式编程中是 非常糟糕的做法)这将起作用(但高度气馁):

sex <- c(1,2,3)

rf <-function(x){
  arg_name <- deparse(substitute(x))
  assign(paste(arg_name, "mean",sep=""), mean(x), envir = .GlobalEnv)
}

rf(sex)