2014-03-03 2 views
0

나는 내 코드에서 이런 식으로 뭔가가 이상한 문제가 있습니다부분적인 기능을 못해 벡터 선택 작업

#(2,1,6,3) 
states.vector <- unique(data$state) 

내가 벡터를 반복하고있는 "상태에서 각 값에 대한 데이터를 하위 집합을 "칼럼. 내 반복을 통해 어떤 시점에서, 다음 코드 줄은 나에게 빈 데이터 프레임을 제공합니다

#When state == 1 
data.state <- subset(data,state==states.vector[state]) 

상태 == 1 인 경우, 그 의미를 그 states.vector [주] == 2. 그러나 때 내가 할 이상한 무엇

subset(data,state==2) 

나는이 과정을 여러 번 사용하는 것입니다, 그리고 일부 다른과 "데이터"에 대한 같은 형식으로, 동일한 작업을 위해 잘 작동하지만, 다음은, 그것을 잘 작동합니다 내부 값.

내가 뭘 잘못하고 있니?

+0

두 개체의 길이가 다르더라도 'states.vector'의 인덱스로 'state' 값을 사용하려고합니다. 'length (data $ state)'와 'length (states.vector)'를보고 문제를 이해하십시오. – Thomas

+0

이 부분 집합 명령은 무엇을해야합니까? 당신은 정말로 이상하게 보입니다. – Roland

+1

'i <-1; data.state <- 하위 집합 (데이터, 상태 == 상태. 벡터 [i])'. 문제는 여러분이 "state"를'states.vector'에 대한 인덱스로 사용하고 있지만'state'는'data' 컬럼의 이름이기도하다고 생각합니다. 'subset (...) '의 두번째 인수에서,'state'의 두 발생은'data' 문맥에서 평가됩니다 – jlhoward

답변

0

jlhoward는 이미 문제가 무엇인지 설명했습니다.

다음 코드 줄을 사용하여 상태를 반복하지 않는 이유는 무엇입니까?

states.vector <- unique(data$state) 

for (selected_state in states.vector) { 
    data.state <- subset(data,state==selected_state) 
    #... 
} 
+0

변수 "state"가 데이터의 열로 해석되었습니다. . – user3375686