특정 이벤트의 시작 시간과 종료 시간이있는 데이터가 있습니다 (대상이라는 객체를 응시하고 있음 Center
).
test <- data.frame(
gaze_at = c("Center", "Center", "Center"),
start = c(1.4, 2.5, 4.4),
end = c(1.66, 2.8, 4.93)
)
이 시간을 데이터 프레임의 두 번째 행마다 삽입하여 응시 하지 않는 참가자의 시작 시간과 종료 시간으로 데이터 프레임을 '채워'싶습니다 Center
. 원하는 출력은 다음과 같습니다.
test1 <- data.frame(
gaze_at = c("Center", "NonCenter", "Center", "NonCenter", "Center", "NonCenter"),
start = c(1.4, 1.66, 2.5, 2.8, 4.4, 4.93),
end = c(1.66, 2.5, 2.8, 4.4, 4.93, NA)
)
나는 사용해 tidyverse::unnest
보았지만 작동하지 않았습니다. 이러한 변화를 어떻게 이룰 수 있습니까?
작동합니까 :
library(dplyr)
library(tidyr)
test %>% uncount(2) %>% mutate(gaze_at = case_when(!row_number()%%2 ~ 'NonCenter', TRUE ~ gaze_at),
start = case_when(!row_number()%%2 ~ lag(end), TRUE ~ start),
end = case_when(!row_number()%%2 ~ lead(start), TRUE ~ end))
gaze_at start end
1 Center 1.40 1.66
2 NonCenter 1.66 2.50
3 Center 2.50 2.80
4 NonCenter 2.80 4.40
5 Center 4.40 4.93
6 NonCenter 4.93 NA
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다