#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"