Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-创建一个创建变量名称的函数_R_Function_Variables - Fatal编程技术网

R-创建一个创建变量名称的函数

R-创建一个创建变量名称的函数,r,function,variables,R,Function,Variables,我想创建一个函数,该函数根据其参数创建名称。 我试过: 但是当我做a3的时候,什么都没有发生。怎么了 谢谢你的帮助 编辑:我会根据要求更具体 我想做一个特征选择:想法是使用一个函数来生成不同的特征子集,为每个子集生成一个训练集,然后在另一个函数中使用这个函数的输出,比如lm来测试每个训练集。子集/训练集的数量是可变的,我不知道如何存储它们以便以后重新使用。您需要在全局环境或希望变量居住的任何环境中分配变量 > a <- function(x) { assign(paste('trai

我想创建一个函数,该函数根据其参数创建名称。 我试过:

但是当我做a3的时候,什么都没有发生。怎么了

谢谢你的帮助

编辑:我会根据要求更具体


我想做一个特征选择:想法是使用一个函数来生成不同的特征子集,为每个子集生成一个训练集,然后在另一个函数中使用这个函数的输出,比如lm来测试每个训练集。子集/训练集的数量是可变的,我不知道如何存储它们以便以后重新使用。

您需要在全局环境或希望变量居住的任何环境中分配变量

> a <- function(x) { assign(paste('train', x, sep = ''), 4, envir = .GlobalEnv) }
> ls()
[1] "a"
> a(1)
> ls()
[1] "a"      "train1"

是的,这对+1有效,但最有可能的是,@mobupu,无论你想做什么,这都是错误的方式。通常,应该避免从函数内部向全局环境赋值,甚至更应该避免赋值。有更多的R-native方法来做类似的事情,而且,这种方法会导致难以阅读的代码,从而导致bug。什么是R-native方法?诚然,我在自己的工作中不使用assign。我同意这很难阅读,在不知道用例是什么的情况下很难准确地说出来,但很可能是有列表的东西。就连迈瓦也感谢你的回答。我现在明白了,这样做确实是个坏主意。@mobupu在本例中,按照Aaron的建议创建一个子集列表,并使用类似Lappy的函数,将函数应用于列表的每个元素,并返回一个列表以在每个子集上运行lm。这将为您提供一个lm对象列表,您可以对其进行进一步分析。分配不是在全局环境中完成的。如果你不知道这意味着什么,就不要使用assign。这个问题需要一个用例,这样才能提出更正确的方法。创建一堆松散的变量确实是个坏主意。你将有一个地狱的时间管理他们的编程。
> a <- function(x) { assign(paste('train', x, sep = ''), 4, envir = .GlobalEnv) }
> ls()
[1] "a"
> a(1)
> ls()
[1] "a"      "train1"