제가 그 열 중 하나의 값이, column
를 호출하는 행함으로써 df
를 호출 기존 데이터 프레임을 부분 집합에 의해, 새로운 데이터 프레임 df2
을 만들려는, 비 - 제로이다. 내가 처음 시도 무엇R에서 마이너스/세트 보수 연산자를 올바르게 사용하는 방법은 무엇입니까?
했다 :
df2 <- df[-(df$column == 0), ]
그러나, 문제가 해결되지 않았다. 두 번째는 일을 왜
df2 <- df[(df$column != 0), ]
내가 얻을 수 있지만, 첫 번째는 operator overloading을 제외하고 작동하지 않았는지 이해가 안 돼요 : 어떤 일을했던 것은이었다.
특히 -(df$column == 0)
과 (df$column !=0)
을 실행하면 전자는 논리적 인 벡터가 아니지만 논리 벡터 (df$column == 0)
의 -1 배를 반환합니다. 그래서 모든 곳에서 값 1을 원했고, 값 0을 가졌으며, 값 0을 원했던 곳은 -1이었습니다. 지금은 그것을 해결하기 어려운되지 않았을 것입니다 알고,
1 -(df$column == 0)
를 작성하여 말하지만, 요점은 내가 그것을 설정 보수 연산자로 동작 할 것으로 예상, 운영자 -
그런 식으로 행동하는 기대하지 않았다이다. (즉 난 문제가있을 것이라고 예상하지 않았다, 그래서 문제를 해결하는 방법에 대해 생각하지 않았습니다.)
콘크리트 질문 : 어떻게 R 언어를 결정 않습니다 여부를 언제 -
를 해석하는 방법 연산자로 : (1) 세트 보수 연산자 (2) 빼기 연산자 (3) -1 곱하기?
내가 찾은 모든 문서는 연산자 -
을 (2) 빼기 연산자로만 처리하지만 R이 (1)과 (3)을 어떻게 구별하는지는 언급하지 않습니다.
또한, 내가 알고 (2)와 (3) 더 많거나 적은 수학적으로 동일하지만 자신의 구현이 동일하다는 것을 의미하지 않을 수 있습니다. (MATLAB의 일예 행렬 반전).
인덱싱의 빼기는 논리적 인덱스가 아닌 숫자 인덱스에서 작동합니다. '-' 연산자가 특별하기 때문에가 아니고,'['는 음의 인덱스를 음의 선택으로 처리하기 때문입니다. – Axeman