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)
我想做一个类似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)