2017-03-12 6 views
0

어려운 일이 아니라고 생각합니다. 아래의 finalList 예제와 같은 목록을 만들고 싶습니다. yz 값은 고정되어 있으며 x 값은 InputList의 값에서옵니다. 만약 내가 세 x, y, z 값을 모두 통과했다면 나는 단지 lapply과 같은 것을 사용할 것이라고 생각했지만, 두 값을 고정시키고 오직 하나의 값을 전달하는 것이 힘든 시간을주었습니다.일부 값이 고정되어 있고 하나가 다른 목록을 만듭니다.

예 :

InputList <- list(p=1, q=2, v=4) 
finalList <- list(list(x=1, y=2, z=3), list(x=2, y=2, z=3), list(x=4, y=2, z=3)) 

답변

0

당신은 Map()을 사용할 수 있습니다. yz 값은 InputList의 길이로 재활용됩니다.

Map(list, x = unname(InputList), y = 2, z = 3) 
1
InputList <- list(p = 1, q = 2, v = 4) 
lapply(InputList, function(x) list(x = x, y = 2, z = 3)) 

str(lapply(InputList, function(x) list(x = x, y = 2, z = 3))) 
# List of 3 
# $ p:List of 3 
# ..$ x: num 1 
# ..$ y: num 2 
# ..$ z: num 3 
# $ q:List of 3 
# ..$ x: num 2 
# ..$ y: num 2 
# ..$ z: num 3 
# $ v:List of 3 
# ..$ x: num 4 
# ..$ y: num 2 
# ..$ z: num 3