有没有办法在R中的新变量名中使用赋值变量的值?

6bc51xsx  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(96)

**目标:**创建一个新变量,其名称使用R中先前赋值的变量的值。
**动机:根据与相关命令属性相关的某个值来命名许多变量( 例如, 为一个图表上的条形填充和另一个图表上的点颜色指定0.75alpha值)将使存储许多对象(它们之间的变化很小)成为可能,而不必在每次变量值改变时改变每个变量的名称。

继续以alpha值为例(如上所述),这将允许我们将变量值从0.75更改为0.25,重新运行绘图命令,并将这些绘图存储在为正在测试的新不透明度命名的变量中。

简单示例:

首先,使用值42

number <- 42

var1_number <- rnorm(number)
var2_number <- runif(number)
var3_number <- log(number)
var4_number <- exp(number)

然后,该值更改为17

number <- 17

var1_number <- rnorm(number)
var2_number <- runif(number)
var3_number <- log(number)
var4_number <- exp(number)

预期产出:

这八个变量应存储在R环境中,如下所示:
| 价值观||
| - ------|- ------|
| var1_42|num [1:42] -0.2298 -0.6823 0.0871 -0.7689 0.1142 . . .|
| var1_17|num [1:17] 1.241 1.781 1.668 -0.446 -1.668 . . .|
| x1米11米1x|num [1:42] 0.6926 0.5927 0.7441 0.9804 0.0202 . . .|
| var2_17|num [1:17] 0.1307 0.3907 0.0599 0.082 0.6091 . . .|
| var3_42|3.73766961828337|
| var3_17|2.83321334405622|
| var4_42|x1米20英寸1x|
| var4_17|24154952.7535753|

尝试次数:

使用上面提供的确切示例将创建四个变量,其名称如下所示:一米二三一x、一米二十四一x、一米二十五一x、一米二十六一x。
由于变量名不是从定义的number变量中检索实际值,因此变量名保持不变,并且当存储在number中的值更改时,变量将被覆盖。
此外,使用反勾号表示变量不起作用(* 即 *,var1_number<- rnorm(number)),因为R将其解释为“意外符号“。

xdyibdwo

xdyibdwo1#

我怀疑列表可能是保持这些组织的更好选择。

make_list <- function(x) {
  a <- list()
  a$var1 = rnorm(x)
  a$var2 = runif(x)
  a$var3 = log(x)
  a$var4 = exp(x)
  a
}

var17 <- make_list(17)

这将有助于保持结果的组织性,并且还将使对这些结果的计算更加容易。

var17$var1
#[1] -1.30949829  0.51942312 -0.08220472  0.32858289  1.39745159  2.36128781  1.01300924 -1.35826357 -0.98565341  0.80732834
#[11]  0.38359233 -0.37823694  0.51910416  0.81922642  0.62763918  0.70783359  0.02417833

这篇文章分享了一个有用的相关案例,我们可以将不同的结果保存在一个列表中,以保持它们的组织性和易于参考:
tjmahr.com/lists-knitr-secret-weapon

相关问题