2013-02-15 3 views
-2

R은 데이터 세트 D (CSV 형식)를 서브 세트하기 위해 사용되었지만 D3에는 항상 0 행 "< 0 행"(또는 0 길이 row.names). " 데이터 세트를 확인하고 누락 된 값을 찾지 못했습니다. 데이터 세트의 문제점은 무엇입니까? 감사!R에서 서브 세트 사용하지만 0 행을 갖는 특정 서브 세트가 있음

D <- read.csv(file="C:\\...\\D.csv", header = T, sep = ",") 

D1 <- subset(D, Season == "Spring") 
D2 <- subset(D, Season == "Summer") 
D3 <- subset(D, Season == "Fall") 

D3 
[1] Cost 
[2] Gender          
[3] Participant         
<0 rows> (or 0-length row.names) 

names(D) 
[1] "Cost" 
[2] "Gender"          
[3] "Participant"          

unique(B$Season) 
[1] Spring  Summer Fall    
3 Levels: Fall Spring Summer 

D3 (CSV 형식) 만 포함 된 새 데이터 세트를 생성했으나 문제가 발생했습니다. 그러나 이는 효율적인 솔루션이 아니 었습니다.

의견을 보내 주셔서 감사합니다. 어떻게 든 작동했던 원래의 CSV 데이터 세트에서 모든 "가을"을 다시 입력했습니다.

+0

타이핑 D3은 변수 이름 만 제공합니다. –

+0

'이름 (D)'의 결과를 보여줄 수 있습니까? ('계절 '은'D'의 필드 중 하나임)'unique (D $ Season)'의 결과? ''Fall ''이'D $ Season'의 값 중 하나라면 직접 표시해야합니다. – Simon

답변

1

subset을 복용하기 전에 사용중인 논리적 진술을 확인해야합니다. 데이터 프레임이 상대적으로 작은 경우 (< 25 행 정도)를 선택한 다음 실행도

[1] TRUE TRUE FALSE FALSE FALSE TRUE 

또는 :

which(D$Season == "Fall") 

[1] 1 2 6 

D$Season == "Fall" 

같이 당신에게 벡터를 줄 것이다 이것은 하위 집합 rows을 선택할 것입니다.

는 거대한 데이터 프레임이있는 경우

, 그냥 수행

table(D$Season == "Fall") 

이 많은 행이 값 Fall있는 방법을 알려줍니다. 나는 당신이 table(D$Season == "Fall")을 실행하면 기꺼이 내기를합니다. 모든 결과가 나타납니다. FALSE

+0

당신은 그것을 가지고 있습니다; 그것은 나에게 모든 거짓을 주었다. D1과 D2가 왜 "하위 집합"으로 잘 작동 했나요? –

+0

'subset'은 매번 잘 작동합니다. 문제는 D에서'Season'이'Fall' 인 값이 없다는 것입니다. –

+0

원래 CSV 데이터 세트에서이 문제를 어떻게 해결할 수 있습니까? –