나는 며칠 동안 웹을 검색하고 있으며 (아마 해결하기 쉬운) 내 문제에 대한 해결책을 찾을 수 없다.조건이 충족되기 전과 후에 데이터 프레임의 행을 선택하는 방법은 무엇입니까?
나는 4 개의 변수가있는 거대한 데이터 프레임과 각각 백만 건 이상의 관찰을 가지고 있습니다. 이제 특정 조건이 충족 된 후 모든 행과 1000 행을 선택하고 나머지는 NA로 채 웁니다. for 루프와 if/ifelse로 시도했지만 지금까지는 작동하지 않습니다. 나는 그것이 큰 일이 아니어야한다고 생각하지만, 그 순간 나는 그걸 포기하지 않았다.
나는 사용하여 데이터를 생성 : 내 데이터는 다음과 같습니다foo<-data.frame(t = 1:15, a = sample(1:15), b = c(1,1,1,1,1,4,4,4,4,1,1,1,1,1,1), c = sample(1:15))
:
ID t a b c
1 1 4 1 7
2 2 7 1 10
3 3 10 1 6
4 4 2 1 4
5 5 13 1 9
6 6 15 4 3
7 7 8 4 15
8 8 3 4 1
9 9 9 4 2
10 10 14 1 8
11 11 5 1 11
12 12 11 1 13
13 13 12 1 5
14 14 6 1 14
15 15 1 1 12
내가 원하는 것은 모든, 2 행하기 전에 (이 예에서는) a
의 값을 선택하는 것입니다 b
값이 1보다 큰 행과 3 행을 포함하고 나머지는 NA로 채 웁니다. [이것은 단지 예일 뿐이므로이 15 개의 행 뒤에 b
의 값이있는 행이 여러 번 있다고 상상할 수 있습니다. (게시하지 않았으므로 불필요한 질문을 스팸하지 않습니다. .
ID t a b c d
1 1 4 1 7 NA
2 2 7 1 10 NA
3 3 10 1 6 NA
4 4 2 1 4 2
5 5 13 1 9 13
6 6 15 4 3 15
7 7 8 4 15 8
8 8 3 4 1 3
9 9 9 4 2 9
10 10 14 1 8 14
11 11 5 1 11 5
12 12 11 1 13 11
13 13 12 1 5 NA
14 14 6 1 14 NA
15 15 1 1 12 NA
내가 어떤 도움을 감사 해요 : 데이터)] 그래서 내가 좋아하는 뭔가를 얻으려면.
감사합니다.
안부, 크리스 여기
나는이 질문을 이해하지 못한다. 아마도'd' 열은 여러분의 "조건"에 기반을 두지 만,'d' 열은 첫 번째 항목과 마지막 항목을 제외하고'a' 열과 동일합니다. 그렇지 않습니까? 'b'는 여기서 어떻게 역할을합니까? 특정 사례의 상태를 명확하게 설명해 주시겠습니까? –
죄송합니다. 제 첫 질문입니다.이 예제의 데이터를 가능한 한 많이 줄이려고 했으므로별로 적당하지 않은 것 같습니다. 내 데이터는 'b'가 (4)와 (1)을 켠다 LED이고, LED가 켜지 기 직전에 'a'의 값 10 개를 롤링 평균 (100 값)으로 계산하려는 실험에서 나온 것입니다. , LED가 꺼지면 켜지고 1000 값이됩니다. 50 만 회의 관측이있을 때마다 달라 보입니다. – Chris
@missuse의 답이 귀하의 질문을 해결하지 못하는 경우, 귀하가 테스트 케이스의 조건 및 예상 결과를 진술 한 * 대표 및 최소 예 *를 제공해주십시오. 나는 그것이 SO 커뮤니티에 당신의 문제를 명확히하는 데 많은 도움이 될 것이라고 생각합니다. –