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

时间:2019-09-30 14:43:55

标签: 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(),但是没有。工作

1 个答案:

答案 0 :(得分:0)

由于我无法复制您的代码(不带通行证等),因此我创建了一个带有解决方案的小示例。您应该添加一个空向量(例如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}
相关问题