나는 비슷한이와 sapply 기능,하지만 내가 (다른 변수 사이에) 두 변수의 RSHIFTSTART와 RSHIFTEND와 데이터 집합을 R apply function with multiple parametersR - 여러 인수
에 아주 같은 질문입니다. 이 변수에는 시간 등이 포함됩니다. 23:30:00 또는 00:00:00. 두 변수가 모두 0 인 경우 RSHIFTSTART와 RSHIFTEND를 NA로 바꾸고 싶습니다. '00 : 00 : 00 '. 내가 일을 할 수 있습니다 생각하는 함수를 작성했습니다
:
# Change '00:00:00' to NA where both variables are '00:00:00'
zeroTime=function(x,y) {
if (x=='00:00:00' & y=='00:00:00') {
replace(x,x=='00:00:00',NA)
replace(y,x=='00:00:00',NA)
}
}
내 질문은 데이터 세트의 변수, 즉를 업데이트하려면이 기능을 적용하는 방법입니다. 그것에 두 개의 인수를 제공합니다. 나는 시도 :
sapply(rosterSample$RSHIFTSTART,rosterSample$RSHIFTEND,zeroTime)
하지만,이 구문이 올바르지 않습니다. 아마도 나는 호출마다 하나의 변수 만 변경하는 것으로 제한 될 것입니다. RSHIFTSTART 또는 RSHIFTEND, 괜찮습니다.
아이디어가 있으십니까? 덕분에이 같은 피트
방법에 대한'mapply' : – shadow
'sapply' 또는'mapply' 여기에 올바른 접근 아니다 "mapply 다변량 sapply의 버전입니다." R은 * pass-by-value *가 아닌 * pass-by-value *를 사용합니다. 즉'zeroTime'는 함수의 범위 밖에서'x'와'y' 인자를 수정하지 않습니다. @ Karl의 대답은 올바른 접근 방식입니다. – flodel
함수가 값으로 전달되고 업데이트 된 변수를 반환해야하는 경우 감사합니다. flodel입니다. 토마스도 그 점에 대해 고마움을 느낀다. 나는 내 검색에서 그 질문을 보지 못했다. – Pete855217