2016-06-30 3 views
0

SAGE에서 볼록 최적화 절차를 실행하려는 데이터가 포함 된 R 목록 (실제로 목록 목록)이 있습니다.목록에서 Sage 목록으로 R 행렬 할당

코드는이

sage_list = [None] * 2 
for k in range(2): 
    x = r('my_r_list[[1]][[1]][[k+1]]') 
    sage_list[k] = x._sage_() 

먼저 x 할당처럼가는 것은 일치하지 않습니다. 만약 내가 여러 번 동일한 코드를 다른 데이터를 얻을 실행합니다. 그러나

NameError: name 'structure' is not defined 

다음을 수행 작동 :하지만 더 중요한 것은 sage_list[k] 할당에 오류가 있습니다 이유

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_() 

어떤 생각을?

+1

당신의 for 루프에서'r'의 인수와 결과적으로'x'를 바꾸기를 기대하는'k'를 사용하고있는 것처럼 보입니다. 그러나 그 인스턴스에서'k'는 그냥 문자열로 간주됩니다, 나는 당신이 루프 변수 값을 대체하고 있다고 생각하지 않습니다. 'x = r (paste0 ("my_r_list [[1]] [[1]] [[", k + 1, "]]")' – thepule

답변

0

이 솔루션은 실제로

x = r('my_r_list')[[1]][[1]][[k+1]] 

r() 수율 및 개체의 RElement 종류 이상의 R 인덱싱 작업을 작동합니다 (물론 실제로 내가 훨씬 더 2 이상의 반복이).