도착과 출발의 쌍을 식별해야합니다. movement
변수는 ARR
과 DEP
을 식별하지만 때로는 ARR
- DEP
쌍 중에 여러 가지가 있습니다. 다른 행은 엉망입니다. ARR
- DEP
쌍을 유지하고 나머지는 삭제합니다.R 불규칙한 데이터 세트의 쌍 식별하기
데이터는 주로 다음과 같습니다 : 아래의 데이터를로드하는 경우, 당신은 볼 수 id
ID5의 경우 "추문"
id time movement origin dest
1 10/06/2011 15:54 ARR 15 15
1 10/06/2011 16:14 DEP 15 29
2 10/06/2011 17:59 ARR 73 73
2 10/06/2011 18:10 DEP 73 75
2 10/06/2011 21:10 ARR 75 75
2 10/06/2011 21:20 DEP 75 73
: 일치하는 쌍 않고 독립 운동을. ID 6 : 여분의 DEP
레코드 (폐기 하겠음) 및 ID 8 : DEP
대신 ARR
이 먼저 나옵니다.
나는 시도 다음과 같은 : 나는를 변경하는 경우
dfru$test <- FALSE
dfru$test[which(dfru$movement == "ARR")] <- TRUE
dfru$test[which(dfru$test[-1] =="TRUE")] <- 1
#이 id
4.
의 마지막 레코드에 1 ~ 5 id
에하지를 즉 TRUE 할당 (일을하거나하지 않습니다 이 중 여행에 맞게 dfru$test[which(dfru$test[-1] =="TRUE" & dfru$movement == "DEP")] <- 1
에 대한 마지막 줄을 작동하지 않습니다.
어떤 아이디어? 명령은/패키지 내가 사용할 수있는?
을데이터 :
dfru <- structure(list(time = structure(c(7L, 16L, 8L, 11L, 18L, 20L,
10L, 12L, 3L, 6L, 15L, 19L, 9L, 4L, 5L, 14L, 1L, 2L, 13L, 17L
), .Label = c("10/06/2011 09:08", "10/06/2011 10:54", "10/06/2011 11:38",
"10/06/2011 12:41", "10/06/2011 12:54", "10/06/2011 14:26", "10/06/2011 14:33",
"10/06/2011 14:59", "10/06/2011 17:12", "10/06/2011 17:14", "10/06/2011 17:23",
"10/06/2011 18:56", "10/06/2011 19:03", "10/06/2011 19:04", "10/06/2011 19:16",
"10/06/2011 19:24", "10/06/2011 20:12", "10/06/2011 21:10", "10/06/2011 22:28",
"10/06/2011 23:40"), class = "factor"), movement = structure(c(1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 3L, 1L, 2L, 2L, 1L,
2L, 2L, 3L), .Label = c("ARR", "DEP", "ITZ"), class = "factor"),
origin = c(15L, 15L, 73L, 73L, 75L, 75L, 17L, 17L, 49L, 49L,
15L, 15L, 32L, 10L, 10L, 17L, 76L, 76L, 76L, 76L), dest = c(15L,
29L, 73L, 75L, 75L, 73L, 17L, 48L, 49L, 15L, 15L, 49L, 32L,
10L, 17L, 10L, 76L, 65L, 76L, 65L), id = c(1L, 1L, 2L, 2L,
2L, 2L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 6L, 6L, 6L, 7L, 7L, 8L,
8L)), .Names = c("time", "movement", "origin", "dest", "id"
), row.names = c(NA, -20L), class = c("data.table", "data.frame"
))
어떤 알고리즘을 시도 했습니까? 프로그래밍 질문은 무엇입니까? 게시 된 것처럼 질문은 여기에 비슷한 일부 데이터 및 목표, 어떤 알고리즘이 적용됩니까? 그것은 프로그래밍 문제가 아닙니다. –
프로그래밍 문제는 쌍만 포함하도록 데이터 집합을 부분 집합하는 방법입니다. 나는 for 루프를 고려해 보았지만 데이터 집합 Im 처리에는 너무 느리다. 나는 또한'which' 함수를 성공적으로 수행하지 못했다고 생각했다. 누군가가 다른 생각을 염두에두고있을 수도 있습니다. – user3507584
@John이 경우에 적용 할 수있는 알고리즘/패키지/기타에 대한 아이디어가 있습니까? – user3507584