0

我有一个hx[[i]]包含 150 个元素的列表。我的脚本逐渐填充此列表,但该列表引用的是“真实世界”列表。出于这个原因,为了便于阅读,该列表必须在脚本中按照设定的顺序(由真实世界的列表按字母顺序排列)。此外,列表元素依赖于其他列表元素(除了hx[[1]]),并且依赖的方式是某些元素依赖于脚本中的以下元素。例如,

hx[[2]] <- hx[[3]] + 4

hx[[3]] <- hx[[1]]

hx[[4]] <- hx[[2]] - 2

hx[[i]]编辑:注意每个分配操作在右侧最多有一个。显然,这hx[[i]]本身可能依赖于另一个hx[[j]],但以下类型的事情永远不会发生

hx[[k]] <- hx[[i]] + hx[[j]]

现在,我正在做的是愚蠢但看似有效(我想知道是否有更好的方法)。我将列表中的所有元素分配给hx[[1]]然后我运行编写的代码150 次,以便肯定使用反向依赖关系。下面是一个只有 4 个列表项的示例

xx <- c(0,0,1,2,3)
hx[[1]] <- xx
for (i in 1:4) { hx[[i]] <- hx[[1]]}

for (i in 1:4){
hx[[1]] <- xx

hx[[2]] <- hx[[3]] + xx

hx[[3]] <- hx[[1]]

hx[[4]] <- hx[[2]] - 2*xx

# More assignments similar

}

现在,我很确定这行得通。但是(1)它看起来非常浪费,(2)它可能不会。我需要更频繁地运行它吗?有什么更好的方法来做到这一点?

4

1 回答 1

0

你应该做什么:

  1. 找出元素相互依赖的顺序:即 、x1 -> x2x2 -> x3

  2. 按该顺序创建您的列表。

  3. 使用for从上到下的循环来初始化您的元素。

  4. 重新排序您的列表以适应您的可读性限制。

于 2013-06-22T06:37:38.403 回答