R 如何连接字符串并将其用作列表名?

R 如何连接字符串并将其用作列表名?,r,R,我有这些列表:包含数字的模型结果、模型结果和模型结果 例如: > models_results_ZL [1] 245.1907896 29.9200000 0.9000181 34.0000000 > models_results_B2 [1] 264.9851283 53.7100000 0.9163977 32.0000000 > models_results_B4 [1] 289.7529856 52.5600000 0.9229745 31.00

我有这些列表:包含数字的模型结果、模型结果和模型结果

例如:

> models_results_ZL
[1] 245.1907896  29.9200000   0.9000181  34.0000000
> models_results_B2
[1] 264.9851283  53.7100000   0.9163977  32.0000000
> models_results_B4
[1] 289.7529856  52.5600000   0.9229745  31.0000000
> both_constr_satisfied
[1] "B2" "B4"
我有一份包含B2,B4的清单,这两份清单都令人满意。这个列表不是静态的。它可能包含ZL、B2和B4的不同组合。 例如:

> models_results_ZL
[1] 245.1907896  29.9200000   0.9000181  34.0000000
> models_results_B2
[1] 264.9851283  53.7100000   0.9163977  32.0000000
> models_results_B4
[1] 289.7529856  52.5600000   0.9229745  31.0000000
> both_constr_satisfied
[1] "B2" "B4"
关于两个结果的值,我想得到相应模型结果列表的第一个值。e、 g.对于本例,我希望获得模型结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果结果。e、 g.新列表=[264.9851283,289.7529856]

如何连接字符串并将其用作列表名

我正在尝试下面的代码,但是var_name只是一个字符串而不是一个列表

VQ_options=c()
for (option in length(both_constr_satisfied)){
    assign(var_name, paste0("models_results_",both_constr_satisfied[option+1]))
    VQ_options = var_name[1]
  }
您可以尝试:

# Some data 
a <- list(models_results_ZL=1:10, models_results_B2=10:1, models_results_B4=11:20)
a
$models_results_ZL
[1]  1  2  3  4  5  6  7  8  9 10

$models_results_B2
[1] 10  9  8  7  6  5  4  3  2  1

$models_results_B4
[1] 11 12 13 14 15 16 17 18 19 20

both_constr_satisfied <- list(c("B2", "B4"))

# change names according the both_constr_satisfied list
a <- setNames(a, unlist(lapply(strsplit(names(a), "_"), "[", 3)))
names(a)
[1] "ZL" "B2" "B4"

# extract the first value, respectively
lapply(a[unlist(both_constr_satisfied)], "[", 1)
$B2
[1] 10

$B4
[1] 11

您能否添加模型结果和施工结果的可复制示例lists@Sotos没有名为model_results的列表。有3个不同的列表具有相同的初始名称。模型结果、模型结果和模型结果。我想将模型结果与满足的两个值连接起来,并将它们用作列表。我添加了这些示例。我还将为双方添加满意的内容。太好了!非常感谢。