이 질문은 reordering groups with dataframe과 비슷한 질문이지만 둘 이상의 변수가 다릅니다. 데이터 예 :R : 여러 변수 그룹 재정렬
raw <- "Date Response ZNumber Latency ZPV
2016-05-04 1 1 445.562 59.666
2016-05-04 2 1 433.890 97.285
2016-05-04 3 1 372.073 53.994
2016-05-04 4 1 282.337 89.686
2016-05-04 4 2 333.186 57.471
2016-05-04 5 1 320.500 71.968
2016-05-04 5 2 280.818 49.187
2016-07-14 1 1 411.849 65.539
2016-07-14 2 1 346.814 50.626"
data <- read.table(text=raw, header = TRUE)
'Date-Response-ZNumber'및 'Latency-ZPV'는 항상 올바르게 연관되어 있습니다. 날짜 - 응답 당 ZNumber 순서는 대기 시간의 오름차순으로 정의해야합니다.
내 데이터의 문제는 날짜 - 응답에 둘 이상의 ZNumber가있는 경우 대기 시간 순서 가이 ZNumber 순서와 일치하지 않는 경우가 있습니다. Date = 2016-05-04, Response = 4는 ZNumber와 Latency 모두에서 오름차순을 갖지만 Date = 2016-05-04, Response = 5는 대기 시간이 내림차순 인 동안 ZNumber가 오름차순입니다.
올바른 분할 적용 조합 작업을 찾을 수 없습니다.
출력 내가 수행 싶은 것이
는 ZNumber과 대기 시간 모두가 '날짜 - 응답'그룹 예를 들어, 내 함께 상승하는 것입니다 날짜 = 2016년 5월 4일, 응답 = 5
"Date Response ZNumber Latency ZPV
2016-05-04 1 1 445.562 59.666
2016-05-04 2 1 433.890 97.285
2016-05-04 3 1 372.073 53.994
2016-05-04 4 1 282.337 89.686
2016-05-04 4 2 333.186 57.471
2016-05-04 5 1 280.818 49.187
2016-05-04 5 2 320.500 71.968
2016-07-14 1 1 411.849 65.539
2016-07-14 2 1 346.814 50.626"
dplyr 등 아래와 같이 해결하기
수많은 시도, 근무 한 적이없는 ...
library(dplyr)
data <- data %>%
group_by(Date, Response) %>%
arrange(Latency, ZNumber) %>%
arrange(Date, Response)
또는 위의 링크 된 질문에서 제안한대로 ...
data <- data %>%
arrange(df, group, desc(value))
다양한 '돌연변이 조인'이 성공하지 못했습니다. 예 :
data <- data %>%
group_by(Date,Response) %>%
select(Latency) %>%
arrange(Latency) %>%
arrange(Response) %>%
full_join(data,by=c("Date","Response"))
그러나 이제 두 개의 대기 시간 열이 있습니다.
sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
other attached packages:
[1] dplyr_0.5.0
loaded via a namespace (and not attached):
[1] lazyeval_0.2.0 magrittr_1.5 R6_2.2.0 assertthat_0.1 DBI_0.5-1
[6] tools_3.3.2 tibble_1.2 Rcpp_0.12.8
그건 그냥 데이터입니다. 주문은 데이터 포인트를 조작하지 않습니다. * Response * # 5, * ZNumber *는 항상 상승하고 * Latency *는 내려갑니다. 하나와 다른 카운터를 정렬하십시오. 날 믿지 않니? 원하는 출력 결과를 표시하여 데이터 셀 변경을 요청하는지 확인할 수 있습니다. – Parfait
예, 예 - 원하는 출력으로 편집했습니다. 작업을 명확히하려고 시도했습니다. –