다음과 같은 “mydata”라는 데이터 프레임이 있습니다. 2,4,6 행을 삭제하고 싶습니다. 예를 들면 다음과 같습니다. 답변핵심 아이디어는 제거하려는 행 세트를 구성하고 해당 세트를 보완하는 것입니다. R에서 세트의 보수는 ‘-‘연산자로 제공됩니다. 그래서 가정하에
물론
답변소위 부울 벡터 (일명
참고는 것을
@mrwab의 답변 (+ 1 btw :)과 비교하면 약간 성가신 것처럼 보이지만 열 값이 특정 값을 초과하는 경우 논리 벡터를 즉석에서 생성 할 수 있습니다.
부울 벡터를 인덱스 벡터로 변환 할 수 있습니다.
마지막으로 매우 깔끔한 트릭은 추출뿐만 아니라 할당에도 이러한 종류의 하위 설정을 사용할 수 있다는 것입니다.
여기서 열 이 4를 초과 하는 경우 ( 숫자가 아님) 답변행 번호 별 삭제 문제빠르고 더러운 분석을 위해 상위 답변에 따라 숫자로 data.frame의 행을 삭제할 수 있습니다. 즉,
그러나 강력한 데이터 분석 스크립트를 작성하려는 경우 일반적으로 숫자 위치별로 행을 삭제하지 않아야합니다. 데이터의 행 순서는 나중에 변경 될 수 있기 때문입니다. data.frame 또는 데이터베이스 테이블의 일반적인 원칙은 행의 순서가 중요하지 않다는 것입니다. 순서가 중요하면 이는 data.frame의 실제 변수로 인코딩되어야합니다. 예를 들어, 데이터를 검사하고 삭제하려는 행의 행 번호를 식별 한 후 데이터 위치를 가져 와서 숫자 위치로 행을 삭제했다고 가정하십시오. 그러나 나중에는 원시 데이터로 이동하여 데이터를 살펴보고 순서를 다시 정합니다. 행 삭제 코드는 이제 잘못된 행을 삭제하며, 더 나쁘게, 이것이 발생했음을 경고하는 오류가 발생하지 않을 것입니다. 더 나은 전략보다 효과적인 전략은 행의 실질적이고 안정적인 속성을 기반으로
행을 삭제하는 것입니다. 예를 들어,
다른 경우에는 공식적인 제외 기준을 지정할 수 있으며 R의 많은 하위 설정 도구 중 하나를 사용하여 해당 규칙에 따라 사례를 제외 할 수 있습니다. 답변데이터 프레임에 id 열을 만들거나 열 이름을 사용하여 행을 식별하십시오. 인덱스를 사용하는 것은 공평하지 않습니다. 사용하여
답변간단한 순서로 :
순서대로 :
부정적인 순서로 :
또는 홀수를 선택하여 부분 집합을 설정하려는 경우 :
또는 홀수를 선택하여 부분 집합을 원하는 경우, 버전 2 :
또는 짝수를 필터링하여 부분 집합을 원한다면 :
또는 짝수를 필터링하여 부분 집합을 설정하려면 버전 2를 사용하십시오.
답변employee.data에서 Dan 삭제-새 data.frame을 관리 할 필요가 없습니다.
답변인덱스별로 행을 제거하는 빠르고 더러운 기능이 있습니다.
주요 결함은 row_index 인수가 값 벡터의 R 패턴을 따르지 않는다는 것입니다. 몇 분 동안 쓰고 테스트하면서 다른 문제가있을 수 있으며 지난 몇 주 동안 R을 사용하기 시작했습니다. 이것에 대한 의견과 개선은 매우 환영받을 것입니다! |