I는 1과 3 사이 w
값에 소요 3 개 분포 중 하나 n
값을 돌려주는 함수를 개발 해요특정 값에 대해 재귀 적 응용 프로그램을 설치하는 방법 ex.w [i] == n [i]?
배경. 내가 가지고있는 문제는 n
또는 w
길이가 1이 아닐 때입니다. 따라서 원하는 기능을 생성하기 위해 nIsList
및 wIsList
매개 변수를 2 개 추가했습니다. 다음과 같이 나는이 작업 할 방법은 다음과 같습니다
(작품 필요한 등) (1 승), (2 승), 소비 소비 실행에 대한 목록과 동등한 소비
If nIsList ex(c(1,2,3))
반환 실행하는리스트 당량 (1, N)를 소비
If wIsList ex(c(1,2,3))
창 (을 필요 작품) (3 승)
소모 (2, N), 소비 (3, N)
(필요대로 작동하지 않습니다) 실행에 대한 목록과 동등한 소비
If nIsList ex(1,2,3) and wIsList ex(1,2,3)
수익률 (1,1), 소비 (2, 2), 소비 (3,3). 대신, 나는 [소비 (1,1), 소비 (1,2), 소비 (1,3)], [소비 (2,1), 소비 (2,2), 소비 , 3)], [소비 (3,1), 소비 (3,2), 소비 (3,3)]
내가 얻는 결과가 왜 나는지 이해한다. 나는 내가 원하는 결과를 얻는 방법을 알아낼 수 없다. ([1], N [1] W) wIsList & nIsList이 때
난 함수 w 각 요소의 목록을 제공 할 및 N이 소비이다
질문 (같이 위에서 설명) 참된. lapply를 사용하여이를 수행 할 수있는 방법이 있습니까?
코드 :
library("triangle")
consume <- function(w, n=1, nIsList=F, wIsList=F){
if(!nIsList & !wIsList){
if(w==1){
return(rtriangle(n,0.3,0.8))
}else if(w==2){
return(rtriangle(n,0.7,1))
}else if(w==3){
return(rtriangle(n,0.9,2,1.3))
}
}
else if(nIsList & !wIsList){
return(sapply(n, consume, w=w))
}
else if(nIsList & wIsList){
return(lapply(n, consume, w=w, wIsList=T))
}
else if(!nIsList & wIsList){
return(lapply(w, consume, n))
}
}
참고 : 나는 문제가이 질문을 요약을 데. 이름 바꾸기에 대한 제안 사항이 있으면 알려 주시기 바랍니다.
'mapply'을 보셨습니까? 그럴 것 같아 – JPC
정말 고마워요 !! 그게 해결 됐어! – sbeleidy
괜찮아요. 문제는 없습니다. 휴대 전화에 답변을 입력 할 수 없었던 미안합니다 : p – JPC