Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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:嵌套For循环以生成连接字符串_R_For Loop - Fatal编程技术网

R:嵌套For循环以生成连接字符串

R:嵌套For循环以生成连接字符串,r,for-loop,R,For Loop,我试图得到一个for循环来打印一系列连接的字符串。每个输出应该由一个组ID和一个子组ID组成。我希望输出只返回每个组的子组数,而不是所有组的所有可能子组数 ## list the solution groups, must keep for name of output chalSolutions <- c("c_2k", "c_6k", "c_9k", "c_13k") ## create cluster limit for each solution group sol_limits

我试图得到一个for循环来打印一系列连接的字符串。每个输出应该由一个组ID和一个子组ID组成。我希望输出只返回每个组的子组数,而不是所有组的所有可能子组数

## list the solution groups, must keep for name of output
chalSolutions <- c("c_2k", "c_6k", "c_9k", "c_13k")

## create cluster limit for each solution group
sol_limits <- c(2,6,9,13)

## nested loop which ideally steps through each solution group, returning 
## a string for only those clusters whose ID is less than or equal to the 
## limit for each group

for(sol in chalSolutions){
   for(lim in sol_limits){
     chalClusters <- c(1:lim)
     for(i in chalClusters){
      obsv <- paste0("results_list$",sol,"_",i,"_obsv")
      print(obsv)
  }
 }
}
而它应该是这样的:

[1] "results_list$c_2k_1_obsv"
[1] "results_list$c_2k_2_obsv"
[1] "results_list$c_2k_1_obsv"
...
[1] "results_list$c_2k_6_obsv"
[1] "results_list$c_2k_1_obsv"
...
[1] "results_list$c_2k_9_obsv"
[1] "results_list$c_2k_1_obsv"
...
[1] "results_list$c_2k_13_obsv"
[1] "results_list$c_6k_1_obsv"
[1] "results_list$c_6k_2_obsv"
[1] "results_list$c_6k_1_obsv"
...
[1] "results_list$c_6k_6_obsv"
[1] "results_list$c_6k_1_obsv"
...
[1] "results_list$c_6k_9_obsv"
...
[1] "results_list$c_2k_1_obsv"
[1] "results_list$c_2k_2_obsv"
[1] "results_list$c_6k_1_obsv"
...
[1] "results_list$c_6k_6_obsv"
[1] "results_list$c_9k_1_obsv"
...
[1] "results_list$c_9k_9_obsv"
[1] "results_list$c_13k_1_obsv"
...
[1] "results_list$c_13k_13_obsv"

在输入的等长列表之间考虑
mapply
(apply系列的elementwise循环成员)

obsv <- mapply(function(c, s) paste0("results_list$", c, "_", 1:s, "_obsv"), 
               chalSolutions, sol_limits)   
obsv
# $c_2k
# [1] "results_list$c_2k_1_obsv" "results_list$c_2k_2_obsv"
# 
# $c_6k
# [1] "results_list$c_6k_1_obsv" "results_list$c_6k_2_obsv"
# [3] "results_list$c_6k_3_obsv" "results_list$c_6k_4_obsv"
# [5] "results_list$c_6k_5_obsv" "results_list$c_6k_6_obsv"
# 
# $c_9k
# [1] "results_list$c_9k_1_obsv" "results_list$c_9k_2_obsv"
# [3] "results_list$c_9k_3_obsv" "results_list$c_9k_4_obsv"
# [5] "results_list$c_9k_5_obsv" "results_list$c_9k_6_obsv"
# [7] "results_list$c_9k_7_obsv" "results_list$c_9k_8_obsv"
# [9] "results_list$c_9k_9_obsv"
# 
# $c_13k
#  [1] "results_list$c_13k_1_obsv"  "results_list$c_13k_2_obsv" 
#  [3] "results_list$c_13k_3_obsv"  "results_list$c_13k_4_obsv" 
#  [5] "results_list$c_13k_5_obsv"  "results_list$c_13k_6_obsv" 
#  [7] "results_list$c_13k_7_obsv"  "results_list$c_13k_8_obsv" 
#  [9] "results_list$c_13k_9_obsv"  "results_list$c_13k_10_obsv"
# [11] "results_list$c_13k_11_obsv" "results_list$c_13k_12_obsv"
# [13] "results_list$c_13k_13_obsv"

谢谢,这很有效!现在的挑战是找出如何将这些输入到绘图函数中,其中每个chalCluster都根据chalSolution分面…我几乎猜这是一个。考虑找一个有图形细节的新的。是的,我通过走这条路线太复杂了。回到绘图板上,贴得更靠近最初创建结果列表的循环。谢谢你!我很确定有一个非嵌套的
for
循环解决方案。但我们需要关于绘图需求的细节。
obsv <- unlist(mapply(function(c, s) paste0("results_list$", c, "_", 1:s, "_obsv"), 
                      chalSolutions, sol_limits, USE.NAMES = FALSE))
obsv
#  [1] "results_list$c_2k_1_obsv"   "results_list$c_2k_2_obsv"  
#  [3] "results_list$c_6k_1_obsv"   "results_list$c_6k_2_obsv"  
#  [5] "results_list$c_6k_3_obsv"   "results_list$c_6k_4_obsv"  
#  [7] "results_list$c_6k_5_obsv"   "results_list$c_6k_6_obsv"  
#  [9] "results_list$c_9k_1_obsv"   "results_list$c_9k_2_obsv"  
# [11] "results_list$c_9k_3_obsv"   "results_list$c_9k_4_obsv"  
# [13] "results_list$c_9k_5_obsv"   "results_list$c_9k_6_obsv"  
# [15] "results_list$c_9k_7_obsv"   "results_list$c_9k_8_obsv"  
# [17] "results_list$c_9k_9_obsv"   "results_list$c_13k_1_obsv" 
# [19] "results_list$c_13k_2_obsv"  "results_list$c_13k_3_obsv" 
# [21] "results_list$c_13k_4_obsv"  "results_list$c_13k_5_obsv" 
# [23] "results_list$c_13k_6_obsv"  "results_list$c_13k_7_obsv" 
# [25] "results_list$c_13k_8_obsv"  "results_list$c_13k_9_obsv" 
# [27] "results_list$c_13k_10_obsv" "results_list$c_13k_11_obsv"
# [29] "results_list$c_13k_12_obsv" "results_list$c_13k_13_obsv"