함수 IF가 포함 된 사용자 정의 함수가 있습니다. data.table에서이 함수를 사용할 때 "조건의 길이가 1보다 크고 첫 번째 요소 만 사용됩니다"라는 경고가 나타납니다.data.table의 if 함수를 사용하는 경고 메시지
필자는 함수가 필요할 때마다 한 번에 한 행씩이 아닌 모든 행에 적용될 수 있다고 생각하지만 확실하지 않습니다.
이 경고가 나타나는 이유는 누구나 알고 있습니까?
내 기능은 다음과 같습니다
HeatIndex<-function(TempC,RH)
{
TFarheit= TempC * 1.8 + 32
if(TFarheit <80 ) {
Te=TempC /15
HI = Te/15
} else {
TA=TempC /11
HI = TA/125
}
HI= (HI - 32)/1.8
return(HI)
}
데이터의 샘플 :
HeatINDEX=data.table(Ave_MeanRH=c(0,100), Ave_MeanT=c(10,20)) #create data.table
그리고 코멘트에, 당신은 할 수 제안한 것처럼 데이터
HeatINDEX[,HI:=HeatIndex(HeatINDEX$Ave_MeanT, HeatINDEX$Ave_MeanRH)]
'빠른'솔루션은 당신이 by''의 각 행에 적용 할 지정하는 것입니다 ' – SymbolixAU
대개 'if'보다는이 종류의 비교에'ifelse'를 사용하는 것이 가장 좋습니다. https://stackoverflow.com/questions/17252905/else-if-vs-ifelse – Marius
"by"매개 변수를 사용하면 경고가 계속 표시됩니다. 더 큰 데이터베이스에서 모든 행에 함수를 실행하는 데 많은 시간이 필요합니다. – Camilo