Пусть у меня есть dataframe следующим образом,Найти минимальную разницу между столбца dataframe и вектором в R
a = c(10,20,30,40,50, 60, 70, 80 ,90, 100) %>% data.frame()
colnames(a) = c("column1")
и вектор,
b = c(46, 90, 75, 15)
Я хочу, чтобы найти ближайший элемент Ь из а. Требуемая мощность будет,
a b
10 15
20 15
30 15
40 46
50 46
60 46
70 75
80 75
90 90
100 90
Ниже мой попытки,
Я пытаюсь добавить rownames а и б и пытается создать полный присоединиться, и найти разницу для каждой комбинации и принять минимальная разница. Но добавление имен ростов делает полную работу соединения только для первых четырех элементов,
a %>% add_rownames('rowname') %>% full_join(b %>% add_rownames(rowname), by = c("rowname" = "rowname"))
Это не работает. Может ли кто-нибудь помочь мне в решении этой проблемы?
'за $ Ь <- б [max.col (-abs (внешний (а $ column1, Ь \ '- \')))] ' – alistaire
или в dplyr, так как он помечен,' a%>% rowwise()%>% mutate (b = b [who.min (abs (column1 - b))]) – alistaire
@alistaire Спасибо. Вы хотите опубликовать его в качестве ответа? – Observer