Я создаю функцию для определения пропущенных идентификаторов между двумя кадрами данных, прежде чем соединить их вместе.
Моя функция до сих пор выглядит следующим образом:
match_check <- function(df1,var1,df2,var2){
df1ids <- unique(df1$var1)
matchs <- c()
no_matchs <- c()
for (id in df1ids){
if (id %in% df2$var2 == TRUE){
match <- append(match, id)}
else{
no_matchs <- append(no_match,id)
}
}
print(no_matchs)
match2 <- c()
no_match2 <- c()
df2ids <- unique(df2$var2)
for (id in df2ids){
if (id %in% df1$var1 == TRUE){
match2 <- append(match2, id)}
else{
no_match2 <- append(no_match2,id)
}
}
print(no_match2)
}
test1 <- data.frame(id=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15))
test2 <- data.frame(id=c(0,-2,-4,-6,-1,1,2,3,4,5,5,6,7,8))
match_check(test1,id,test2,id)
Когда я запускаю функцию,печатные векторы печатаются как NULL.Я хотел бы напечатать идентификаторы, которые не найдены в другом, так что я знаю, какие идентификаторы отсутствуют в другом, давая векторы, которые будут выглядеть следующим образом:
no_matchs = c(9,10,11,12,13,14,15)
no_match2 = c(0,-2,-4,-6)