0
ID가 id
이고 세그먼트가 PM
인 세그먼트에 일련 번호가 연속적으로 표시되도록 패널 번호가 dfL
인데, 여기에 이라는 세그먼트가 있습니다. 일련 번호가 -1
및 1
이고 길이가 4
이상인 시리즈를 찾고 있습니다. 데이터와 상황에 내 그림 아래은 ID와 세그먼트 내 연속 일련 번호를 나타냅니다.
,
# install.packages(c("tidyverse"), dependencies = TRUE)
library(tibble)
나는 처음 4-7
이 일치하는 것이이 PM01
행에서
dfa <- tibble(id = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7),
PM01 = c(NA, -3, NA, -2, -1, 1, 2, NA, NA, -2, -1, NA, -3, -2, -1,
1, 2, 3, NA, NA, -2, -1, 1, 2, 3, NA, NA, NA, NA, NA),
PM02 = c(1, -2, NA, NA, NA, -3, -2, -1, NA, 1, 2, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, -1, 1, 2, NA, NA, NA, NA, NA),
PM03 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, -3, -2, -1, 1, 2, 3, NA, NA)
);dfa
#> # A tibble: 30 x 4
#> id PM01 PM02 PM03
#> <dbl> <dbl> <dbl> <dbl>
#> 1 0 NA 1 NA
#> 2 0 -3 -2 NA
#> 3 0 NA NA NA
#> 4 0 -2 NA NA
#> 5 0 -1 NA NA
#> 6 0 1 -3 NA
#> 7 0 2 -2 NA
#> 8 0 NA -1 NA
#> 9 0 NA NA NA
#> 10 0 -2 1 NA
#> # ... with 20 more rows
,이 같은 다양한 형식의 데이터를 가지고있다.
저는 tidyr::gather
을 보았습니다. 데이터를 살펴볼 때 한 번만보아야합니다. 이처럼
# install.packages(c("tidyverse"), dependencies = TRUE)
library(tidyr)
dfL <- dfa %>% select(id, PM01:PM03) %>% gather(shift, PM, PM01:PM03, na.rm = FALSE) %>% arrange(id, shift) %>% group_by(id, shift)
나는 내가 무엇을 찾고 설명했지만, 나는 단순히 내 원하는 결과를 보여주는 경우가 명확 수 있습니다 발견. 이와 같이
cbind(dfL, TF = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE,
TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE))
# A tibble: 90 x 4
# Groups: id, shift [9]
id shift PM TF
<dbl> <chr> <dbl> <lgl>
1 0 PM01 NA FALSE
2 0 PM01 -3 FALSE
3 0 PM01 NA FALSE
4 0 PM01 -2 FALSE
5 0 PM01 -1 FALSE
6 0 PM01 1 FALSE
7 0 PM01 NA FALSE
8 0 PM01 NA FALSE
9 0 PM01 NA FALSE
10 0 PM01 -2 FALSE
# ... with 80 more rows