2014-10-13 4 views
0

초기 데이터 프레임의 서브 세트를 얻으려고 할 때 문제가 생겨 결국 데이터 프레임이 손상됩니다!서브 세트가있는 R의 버그 버그

가 dataframe 생각해 보자 : 여기에 무슨 일이 일어나고 있는지의 예입니다

>test=data.frame("v1"=c(1,2,3,4,-5,-3),"v2"=c(1,2,3,4,5,6)) 
> print(test) 
    v1 v2 
1 1 1 
2 2 2 
3 3 3 
4 4 4 
5 -5 5 
6 -3 6 

가 그럼 난 VAR1 값이 엄격하게 아래에있는 하위 집합을 먹고 싶어이의 -2를 가정 해 봅시다 :

> subtest=test[test$v1<-2,] 
> print(subtest) 
    v1 v2 
2 2 2 
> print(test) 
    v1 v2 
1 2 1 
2 2 2 
3 2 3 
4 2 4 
5 2 5 
6 2 6 

하위 집합 작업이 작동하지 않았을뿐만 아니라 모든 v1 값을 2로 바꾸어 실제로 초기 데이터베이스가 손상되었습니다!

+0

http://stackoverflow.com/a/2271905/967840 – GSee

답변

3

나는 (는) 버그가 아닙니다. 그냥 오타입니다!

연산자 <-은 값을 지정하는 데 사용됩니다. subtest=test[test$v1<-2,] 명령에서 변수 v1의 모든 값을 2에 할당했습니다.

당신이 원하는 것을 수행하려면, 당신은 대신 그렇게해야

subtest=test[test$v1< -2,] 
3

이것은 버그가 아닙니다. 괄호는 대입 기호 <-이 될 것이기 때문에 대괄호를 써야합니다. 정확히 -2 이하일 경우 :

subtest=test[test$v1<(-2),] 
+3

공간이 더 일반적인 것 :'시험 $ v1의 <-2 ' – GSee