다른 세 열을 포함하는 계산 결과 인 다른 열을 추가하려는 데이터 프레임이 있습니다. 내가 지금 사용하고있는 방법은 매우 느린 것 같습니다. 같은 작업을 수행하는 더 좋은 방법이 있습니까? 여기에 제가 사용하는 접근법이 있습니다.R : 데이터 프레임의 여러 열에서 행 현명한 계산을 수행하는 가장 빠른 방법
library(bitops)
GetRes<-function(A, B, C){
tagU <- bitShiftR((A*C), 4)
tagV <- bitShiftR(B, 2)
x<-tagU %% 2
y<-tagV %% 4
res<-(2*x + y) %% 4
return(res)
}
df <- data.frame(id=letters[1:3],val0=1:3,val1=4:6,val2=7:9)
apply(df, 1, function(x) GetRes(x[2], x[3], x[4]))
내 데이터 프레임이 매우 커서이 계산을 완료하는 데 오래 걸립니다. 누군가 내가 더 잘 할 수 있다고 제안 할 수 있습니까?
감사합니다.
+1, 나는 bitShiftL이 벡터화 된 함수라는 것을 몰랐다. –