2016-11-03 7 views
0
testd <- data.frame(A= c(1,2,3,4), B = c(5,6,7,8), C= c(3,4,5,9)) 

I 행을 삭제하려는 데이터 $ A * 데이터 $ B의 * 데이터 $ C> 105삭제 행이 한번에 하나씩

I 사용하여 예를 들어이를 해결할 수 ifelse, 네 번째 열을 만들고 나중에 삭제하십시오. 문제는 내 파일이 거의 모든 메모리를 차지하고 있으며 계속 진행할 수 없다는 것입니다. apply 기능을 사용하여 행 단위로 행할 수 있습니까?

rowf <- function(x){ 
    x <- as.data.frame(x) 
ans1 <- x$A * x$B * x$C 

if(ans1 > 105){ 

    return(NULL) 
} 

else { 

    return(x) 
} 

} 

apply(testd,1, rowf) 

위의 내용은 내 시도이지만 성공하지 못합니다.

+0

내가 apply'가 새로운 객체 – HubertL

+0

결과 저장합니다'같은데요 당신이 dplyr :: 필터 (testd, A * B를'같은 것을 봤어 * C <= (105))'? – ulfelder

+2

편안한 마진을 가진 메모리에 맞을 때까지 데이터 세트의 절반을 작업 할 것을 제안합니다. – HubertL

답변

0

사용 부분 집합 :

testd <- testd[(testd$A*testd$B*testd$C)<105,] 
관련 문제