перезапись цикла в R выводит последнее значение - PullRequest
0 голосов
/ 30 сентября 2019
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 голосов
/ 30 сентября 2019

Так как я не могу воспроизвести ваш код (без комментирования и т. Д.), Я создал небольшой пример с решением, которое будет решением. Вы должны добавить пустой вектор (например, temp_vector), чтобы временно сохранить решение:

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

Так как теперь вы действительно сохраняете только последнее значение в y. Кроме того, я считаю, что у должен быть вне цикла for с j и только внутри цикла for i.

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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...