저는 보행주기 데이터로 작업하고 있습니다. 각 이드와 보행 트라이얼에 대해 8 개의 이벤트가 표시되어 있습니다. "LFCH"와 "RFCH"값은 왼쪽 다리와 오른쪽 다리의 보행주기의 시작과 끝을 나타 내기 때문에 각 시도에서 두 번 발생합니다.R dplyr - 다른 열의 특정 값의 위치를 기반으로 한 열의 값을 선택하십시오.
샘플 데이터 프레임 : 나는 나의 현재 코드는 문제를 해결
Total_gait_left = Frame[The last time Marks == "LFCH"] - Frame[The first time Marks == "LFCH"]
같은 것을 만들려면 고원,하지만 실제 값보다는 프레임 값의 위치에 따라 달라집니다
df <- data.frame(ID = rep(1:5, each = 16),
Gait_nr = rep(1:2, each = 8, times=5),
Frame = rep(c(1,5,7,9,10,15,22,25), times = 10),
Marks = rep(c("LFCH", "LHL", "RFCH", "LTO", "RHL", "LFCH", "RTO", "RFCH"), times =10)
head(df,8)
ID Gait_nr Frame Marks
1 1 1 1 LFCH
2 1 1 5 LHL
3 1 1 7 RFCH
4 1 1 9 LTO
5 1 1 10 RHL
6 1 1 15 LFCH
7 1 1 22 RTO
8 1 1 25 RFCH
점수. 정상적인 보행 패턴을 따르지 않은 개인은 코드에서 잘못된 값을 생성합니다.
library(tidyverse)
l <- df %>% group_by(ID, Gait_nr) %>% filter(grepl("L.+", Marks)) %>%
summarize(Total_gait = Frame[4] - Frame[1],
Side = "left")
r <- df %>% group_by(ID, Gait_nr) %>% filter(grepl("R.+", Marks)) %>%
summarize(Total_gait = Frame[4] - Frame[1],
Side = "right")
val <- union(l,r, by=c("ID", "Gait_nr", "Side")) %>% arrange(ID, Gait_nr, Side)
예를 들어 코드를 변경하여 코드를 안정화하도록 도와 줄 수 있습니까? 프레임 [4] 프레임과 같은 것으로 [Marks == "LFCH"last time]?