2014-07-22 4 views
0

모든 담당자와 성능 통계 목록을 반환하는 시뮬레이션의 성능을 평가하고 있습니다.목록 추가/데이터 구조 선택

fakeList = list() 
fakeList$group1$stat1 = c("var1" = .3, "var2" = .2) 
fakeList$group1$stat2 = c("var1" = .1, "var2" = .3) 
fakeList$group2$stat1 = c("var3" = .7) 
fakeList$group2$stat3 = c(TRUE) 

fakeList 
$group1 
$group1$stat1 
var1 var2 
0.3 0.2 

$group1$stat2 
var1 var2 
0.1 0.3 


$group2 
$group2$stat1 
var3 
0.7 

$group2$stat3 
[1] TRUE 
type1type2 내 시뮬레이션 데이터 세트에서 (예를 들어, 바이너리 및 일반) 변수의 다른 유형이다

stat1, stat2stat3가 있습니다 : 현재 다음과 같은 중첩 된 목록의 더 복잡한 버전을 반환 다양한 성능 통계. ,

newEntry = list() 
newEntry$group1$stat1 = c("var1" = .3, "var2" = .4) 
newEntry$group1$stat2 = c("var1" = .2, "var2" = .1) 
newEntry$group2$stat1 = c("var3" = .9) 
newEntry$group2$stat3 = c(FALSE) 

newEntry 
$group1 
$group1$stat1 
var1 var2 
0.3 0.4 

$group1$stat2 
var1 var2 
0.2 0.1 


$group2 
$group2$stat1 
var3 
0.9 

$group2$stat3 
[1] FALSE 

나는 append()c()했지만, 사람들은 단지 fakeList의 끝에 새 항목을 추가

나는 목록에 또 다른 "행"으로 목록에 다음과 같은 새로운 항목을 추가 할 fakeList의 해당 목록에 새로운 "행"을 추가하는 것이 아닙니다.

이 작업을 수행하는 간단하고 효율적인 방법이 있습니까? 아니면 완전히 다른 데이터 구조를 사용해야 하는가? 궁극적 인 목표는 성능 통계 각각에 새로운 항목을 추가 할 때마다 시뮬레이션을 반복하는 것입니다. 그런 다음 다른 시뮬레이션과 통계를 각각 플로팅하여 모든 시뮬레이션에서 각 성능 통계의 평균을 계산합니다. 이러한 이유 때문에 목록의 계층 적 구성과 데이터 프레임 또는 매트릭스를 좋아합니다.

+0

충분한 정보를. 하지만 내 추측에 따르면 각 출력의 각 부분을 목록의 올바른 부분에 추가하기 위해 코드를 변경해야합니다. – JeremyS

+0

원하는 결과는 무엇입니까? –

답변

1

Map 차례로 서로 각 list의 각 구성 요소는 당신에게 줄 것이다,이 시도 : 주어진

Map(function(x,y) Map(rbind,x,y) , fakeList, newEntry) 

#$group1 
#$group1$stat1 
#  var1 var2 
#[1,] 0.3 0.2 
#[2,] 0.3 0.4 
# 
#$group1$stat2 
#  var1 var2 
#[1,] 0.1 0.3 
#[2,] 0.2 0.1 
# 
# 
#$group2 
#$group2$stat1 
#  var3 
#[1,] 0.7 
#[2,] 0.9 
# 
#$group2$stat3 
#  [,1] 
#[1,] TRUE 
#[2,] FALSE 
+0

이것은 완벽합니다. 고맙습니다! –