2012-12-27 8 views
1

I와 동료가 차례로 데이터를 입력합니다. 언젠가는 다음 주에 누군가가하고, 우리는 항상 한 번에 50 회의 관측을 Excel 시트에 입력합니다. 그래서 저는 101에서 150, 그리고 301에서 350으로 사건을 입력했는지 꽤 확신 할 수 있습니다. 그런 다음 데이터를 R로 읽어 작업합니다. 입력 한 사례 만 선택하려면 어떻게해야합니까?각 그룹의 첫 번째 n 관측치 선택

이제 엑셀 시트에서 복사하여 할 수 있다는 것을 알고 있습니다. 그러나 R에서 행할 수 있는지 궁금합니다.

는 또한

data<-data[101:150 & 301:350,] 

같은 것들을 시도, R 데이터를 부분 집합에 대한 여러 문서를 확인하지만 작동하지 않았다. 누군가가 저를이 질문에 대답하는 좀 더 포괄적 인 가이드로 인도 해 주시면 감사하겠습니다.

+3

'data [c (100 : 150,300 : 350),]'. 원하는 케이스를 구체적으로 설명 할 수 있습니까? 그것은 각 100의 처음 50인가요, 아니면 각 300의 처음 50입니까, 아니면 ...입니까? 각'm '의 첫 번째'n'은'c (outer (0 : 4, seq (0,100, by = 10), "+"))'(여기서는'n' = 5,'m' = 10) –

+0

"100에서 150까지의 경우"는 51 회의 관측을 커버합니다. – Henry

+0

@Ben Bolker 제 질문에 너무 고마워요. 컬렉션과 벡터 같은 기본 개념을 연구해야한다는 것을 알게되었습니다. 답변으로 게시하면 동의 할 것입니다. – barerd

답변

4

당신이 준 특정 예에 대한 대답은

data[c(100:150,300:350),] 

당신이 원하는 경우에 대해 더 구체적으로 할 수있다? 그것은 각 100의 처음 50인가요, 아니면 각 300의 처음 50입니까, 아니면 ...입니까? 당신은 같은

c(outer(0:4,seq(1,100,by=10),"+")) 

(여기 n = 5, m = 10) 뭔가를 사용할 수있는 각 m가지 경우 첫 n에 대한 인덱스를 얻으려면 outer은 일반화 된 외부 제품입니다. 대체 (더 직관적 인) 솔루션은 rep을 사용합니다.

rep(0:4,10) + rep(seq(1,100,by=10),each=5) 

R은 자동으로 당신이 실제로이을 단축 할 수 필요한 벡터 재활용하기 때문에 :

0:4 + rep(seq(1,100,by=10),each=5) 

하지만 난 더 이해로 약간 더 배합을 추천 할 것입니다.

관련 문제