Извлечение элементов R фрейма данных с учетом их индексов

#r #dataframe

#r #фрейм данных

Вопрос:

У меня есть 2 вектора, x и y, которые содержат координаты x и y (позиции строк и столбцов) фрейма данных, df, соответственно. Я хотел бы поместить значения в df, которые связаны с этими позициями в другом векторе, result, и мне интересно, есть ли какой-либо способ сделать это эффективно.

В моем примере позиции будут (1,1), (1,4), (2,3), и (4,3). Результат — мой ожидаемый результат.

В качестве примера:

 x <- c(1,1,2,4)
y <- c(1,4,3,3)
df <- data.frame("1"=c("a","b","c","d"),"2"=c("e","f","g","h"),"3"=c("i","j","k","l"),"4"=c("m","n","o","p"))
result <- c("a", "m", "j", "l")
 

Ответ №1:

Вы можете cbind использовать два вектора положения и использовать их для подмножества фрейма данных.

 x <- c(1, 1, 2, 4)
y <- c(1, 4, 3, 3)

df[cbind(x, y)]
#[1] "a" "m" "j" "l"