1
나는 꽤 큰 데이터 프레임 (몇 수백만 레코드)을 가지고있다.
다음 규칙 때문에 필터링해야합니다.
- 각 제품에 대해 x> 0 인 첫 번째 레코드 다음에 다섯 번째 레코드 앞에있는 모든 레코드를 삭제하십시오.루프가없는 데이터를 필터링 R
그래서 두 개의 열 (ID와 x)에만 관심이 있습니다. 데이터 프레임은 ID별로 정렬됩니다.
루프를 사용하는 것이 매우 쉽지만 큰 데이터 프레임에서는 루프가 잘 수행되지 않습니다.
'벡터 스타일'에서 어떻게 수행하나요? 필터링 후
필터링
ID x
1 0
1 0
1 5 # First record with x>0
1 0
1 3
1 4
1 0
1 9
1 0 # Delete all earlier records of that product
1 0
1 6
2 0
2 1 # First record with x>0
2 0
2 4
2 5
2 8
2 0 # Delete all earlier records of that product
2 1
2 3
전 :
예 이러한 분할을 위해
ID x
1 9
1 0
1 0
1 6
2 0
2 1
2 3
덕분에이 먹이를! 그것은 작동합니다. 그게 바로 제가 뭘 찾고 있었는지 - 깨끗한 R 스타일의 솔루션입니다. –