2016-08-13 3 views
0

거대한 데이터 세트가 있는데 나는 시즌이라는 열을 가지고 있습니다. 겨울, 봄, 여름, 가을의 4 계절이 있습니다.두 요소의 서브 세트 R

Region Year Male Female Area DATE Day Month Season 
WEST 1996 0 1 4 06-04-96 Saturday April Spring 
EAST 1996 0 1 16 29-06-96 Saturday June Summer 
WEST 1996 0 1 4 19-10-96 Saturday October Winter 
WEST 1996 0 1 4 20-10-96 Sunday October Winter 
EAST 1996 0 1 16 01-11-96 Friday November Winter 
EAST 1996 0 1 16 11-11-96 Monday November Winter 
WEST 1996 0 1 4 19-11-96 Tuesday November Winter 
WEST 1996 0 1 4 28-11-96 Thursday November Winter 
WEST 1996 0 1 4 10-12-96 Tuesday December Winter 
WEST 1997 0 1 4 17-01-97 Friday January Winter 
WEST 1997 0 1 4 28-03-97 Friday March Spring 

그래서 겨울철 가을을 항목으로 표시하려는 부분 집합을 만들려고합니다.

내가 원하는 부분부터 먼저 부분 집합을 만들었습니다.

secondphase<-subset(eb1, Area>16) 

이제이 하위 집합에서 계절이 겨울과 가을 인 경우를 원합니다.

나는이이 두 부분 집합을 병합하는 방법이 지금
th2<-subset(secondphase, Season== "Winter") 
th3<-subset(secondphase, Season=="Autumn") 

을 codes- 시도? 또는 영역> 16을 원하는 조건을 선택할 수있는 부분 집합을 만들고 시즌은 겨울과 가을이되어야합니다.

감사합니다.

+1

시도해보십시오. th2 <-subset (secondphase, Season == "Winter"| Season == "Autumn") 여기서 | 논리 OR을 의미합니다 – Dave2e

+0

이것을 읽으십시오 (http://adv-r.had.co.nz/Subsetting.html). –

+0

방금 ​​전에 작성한 편집 내용이 모든 서식을 망쳐 놓았습니다 ... 다시 롤백했지만 도움이 필요하면 알려주세요. 나는 당신이 코드 블럭 포맷을 시도하고 있다고 생각하지만 틀린 유형의 눈금을 사용했다. 또한 테이블과 같은 여러 줄 코드에서는 작동하지 않습니다. 코드 블록 기능을 사용해야합니다. –

답변

0

방법 1

my_subset <- eb1[eb1$Season %in% c("Winter", "Autumn") & eb1$Area > 16,] 

방법 2

th2 <- subset(secondphase, Season== "Winter") 
th3 <- subset(secondphase, Season=="Autumn") 
final <- rbind(th2, th3) 

방법 3

final <-subset(eb1[eb1$Area > 16,], Season== "Winter" | Season=="Autumn") 
+1

고맙습니다. ! –

+0

@SrivatsChari 도와 드리겠습니다! –

+0

나를 도울 수 있다면 선형 회귀 모델에 또 다른 문제가있었습니다. @ Hack-R –

1

또한 dplyr 패키지 재치를 사용할 수 있습니다 시간 필터 기능 data.table 방식으로

filter(secondphase, grepl("Winter|Autumn", Season)) 
+0

제거되었습니다. – johnsinclair

+1

을 가리키는 Thx 구문이 올바르지 않습니다. 당신은 정규 표현식 패턴 밖의 문자열 내에서'|'를 사용할 수 없으며,'=='는 정규 표현식과 일치하도록 시도 할 것입니다. Season == 'Winter'| Season == 'Autumn')'또는 eb1 %> 필터 (Area> 16, % c ('Winter')의 Season % , '가을'))' – alistaire

0

,

library("data.table") 
DT<-data.table(eb1) 
subsetDT<-subset(DT, Season %in% c("Autmn","Winter") & Area > 16) 

은 작업을 수행합니다.

관련 문제