이 행이 다른 데이터 프레임과 공통적 인 행 번호를 찾고자하는 데이터 프레임이 있습니다. 문제는 명확하게하기 위해다른 데이터 프레임에서 컨디셔닝 데이터 프레임의 행 번호 선택
, 나는 데이터 프레임 A와 데이터 프레임 B가 있다고 가정 :
나는 DFA와 DFB이 경우, 동일한 이름과 재판이 DFA의 행 번호를 얻으려면dfA <- data.frame(NAME = rep(c("a", "b"), each = 3),
TRIAL = rep(1:3, 2),
DATA = runif(6))
dfB <- data.frame(NAME = c("a", "b"),
TRIAL = c(2, 3))
dfA
# NAME TRIAL DATA
# 1 a 1 0.62948592
# 2 a 2 0.88041819
# 3 a 3 0.02479411
# 4 b 1 0.48031827
# 5 b 2 0.86591315
# 6 b 3 0.93448264
dfB
# NAME TRIAL
# 1 a 2
# 2 b 3
, 행 번호는 2와 6입니다.
2, 3, 5, 6 행을 제공합니다. NAME과 TRIAL은 별도로 일치하며 작동하지 않습니다.
which(dfA$NAME %in% dfB$NAME & dfA$TRIAL %in% dfB$TRIAL)
# 2 3 5 6
그런 다음이 더미를 만들고이 열과 일치 시키려고했습니다. DFB에 여러 C 럼이있는 경우, 작품,하지만 코드는 ... 당신의 도움을
dfA$dummy <- paste0(dfA$NAME, dfA$TRIAL)
dfB$dummy <- paste0(dfB$NAME, dfB$TRIAL)
which(dfA$dummy %in% dfB$dummy)
# 2 6
문제를 해결하기 위해 더 나은 방법이 있는지 궁금 해요, 감사 자세한 될 것입니다!
merge(transform(dfA, row.num = 1:nrow(dfA)), dfB)$row.num
# [1] 2 6
을 그리고 당신은 dfA
서브 세트를 할 수 있도록 인덱스를 찾는 전체 목표 인 경우에, 당신은 단지 merge(dfA, dfB)
을 수행 할 수 있습니다
매우 깔끔한, 감사합니다! – calbear