Если значение совпадает с вектором в data.frame, возвращает значение в соседнем столбце

#r #dataframe #for-loop

#r #dataframe #для цикла

Вопрос:

Я определяю следующие данные.frame:

 bolts <- data.frame(bolt = c("1/2","5/8","3/4","7/8","1"),
                hole = c(9/16,11/16,13/16,15/16,17/16))
  

Затем я выбираю значение из bolts$bolt случайным образом:

 bolt <- sample(c("1/2","5/8","3/4","7/8","1"),1)
  

Я хочу написать код для возврата соответствующего bolts$hole выбранному значению болта. Я попробовал ниже, но я получил NULL:

 hole <- for (bolt in bolts$bolt) {return(bolts$hole)}
  

Ответ №1:

Вы можете использовать match

 bolts$hole[match(bolt, bolts$bolt)]
  

Или ==

 bolts$hole[bolts$bolt == bolt]