循环覆盖 R 输出最后一个值


y<-list() #?????? STUCK!!!!HERE:overwrite problems
for (i in 1:2^N){
for (j in 1:N){
comstate[1:N,] = comN[i,]#spoint<-comN[i,]
tcomstate=t(comstate)`#need transpose "comstate" to ensure col stands for the component state
tcomstate[j,j]=(1-comN[i,j])#diag(tcomstate)<-(1-comN[i,j])}}
y[[i]] <- which( colSums(t(comN)==tcomstate[j,])==ncol(comN) )}}
y

我陷入了R循环中的覆盖问题。y输出应该是四个值(例如 11,7,1,4(,但它只有一个值 (4(,我尝试了y<-list()array(),但它不起作用

由于我无法重现您的代码(没有 comstate 等(,因此我创建了一个小示例,其中包含解决方案。您应该添加一个空向量(例如temp_vector(来临时存储以下解决方案:

which( colSums(t(comN)==tcomstate[j,])==ncol(comN) )

从现在开始,您确实只将最后一个值存储在 y 中。此外,我相信 y 应该在 j 的 for 循环之外,并且只在 i 的 for 循环内。

y=list()
N=3
for (i in 1:2^N){
temp_vector=c() 
for (j in 1:N){
ad=c(ad,j)} 
y[[i]]=ad}

最新更新