Ich habe eine R-Liste (eigentlich eine Liste von Liste), die Daten enthält, ich möchte eine konvexe Optimierungsprozedur in SAGE ausführen.Zuweisen einer R-Matrix aus einer Liste in eine Sage-Liste
Der Code geht so
sage_list = [None] * 2
for k in range(2):
x = r('my_r_list[[1]][[1]][[k+1]]')
sage_list[k] = x._sage_()
Erste der x
Zuordnung ist nicht konsistent. Wenn ich mehrmals den gleichen Code ausführe, erhalte ich unterschiedliche Daten. Aber noch wichtiger ist die sage_list[k]
Zuordnung gibt einen Fehler:
NameError: name 'structure' is not defined
Sie folgendermaßen vorgehen jedoch funktioniert:
sage_list = [None] * 2
x = r('my_r_list[[1]][[1]][[1]]')
y = r('my_r_list[[1]][[1]][[2]]')
sage_list[0] = x._sage_()
sage_list[1] = y._sage_()
eine Vorstellung davon, warum? (Natürlich in Wirklichkeit habe ich viel mehr als zwei Wiederholungen)
Es scheint mir, dass Sie in Ihrer for-Schleife 'k' verwenden und erwarten, dass es das Argument von' r' und folglich 'x' ändert. Aber 'k' in dieser Instanz wird nur als eine Zeichenfolge gesehen, ich glaube nicht, dass Sie dort den Wert Ihrer Schleifenvariablen ersetzen. Versuche: 'x = r (paste0 (" meine_r_liste [[1]] [[1]] [[", k + 1,"]] ")' – thepule