다음 표가 있습니다.
tbl1 <- tibble::tribble(
~numberEvent, ~numberNovo,
"497", "497",
"498", "498",
"499", "499",
"500", "500",
"501", "498, 506",
"502", "502",
"503", "503",
"504", "504",
"505", "505",
"506", "506",
"507", "498, 506")
열 numberEvent의 값보다 작거나 같은 열 numberNovo의 최대 값으로 새 열을 만들려고합니다. 따라서 5 행에서는 501보다 작은 최대 값이므로 결과로 498을 얻고 싶습니다. 마지막 행에서 원하는 결과는 506이됩니다.
나는 열 번호 Novo를 목록 열로 바꾸려고 시도했지만 거기에서 어떻게 가야할지 모르겠습니다. 도움을 주시면 감사하겠습니다.
미리 감사드립니다!
우리는 사용할 수 separate_rows
발견, 'numberEvent'와 'numberNovo'의 차이를 얻을 수의 인덱스 열을 분할하고 그때까지 그룹을 max
원래의 데이터로 'numberNovo'와 바인딩을 서브 세트의 차이를
library(dplyr)
library(tidyr)
tbl1 %>%
separate_rows(numberNovo, convert = TRUE) %>%
group_by(grp = numberEvent) %>%
summarise(maxNovo = numberNovo[which.max(as.integer(numberEvent) -
numberNovo)]) %>%
select(maxNovo) %>%
bind_cols(tbl1, .)
# A tibble: 11 x 3
# numberEvent numberNovo maxNovo
# <chr> <chr> <int>
# 1 497 497 497
# 2 498 498 498
# 3 499 499 499
# 4 500 500 500
# 5 501 498, 506 498
# 6 502 502 502
# 7 503 503 503
# 8 504 504 504
# 9 505 505 505
#10 506 506 506
#11 507 498, 506 498
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다