Я заполняю значения столбца в кадре данных из значений, присутствующих в матрице.Поиск значения выполняется из двух столбцов, называемых e1
и e2
.Но возможно, что в любом из этих столбцов содержатся строки, которых нет в матрице.Это, конечно, дает ошибку, но я хотел бы знать, возможно ли продолжить заполнение нулевым несуществующим значением.
x<-cbind(c(0.3,0.35,0.35,0),c(0.2,0.2,0.4,0.2)
,c(0,0.6,0.1,0.3),c(0.5,0.25,0.25,0))
colnames(x) <- c("A","B","C","D")
rownames(x) <- c("A","B","C","D")
y<-as.data.frame(cbind(c(1,2,3,4,5,6)
,c("A","A","B","A","B","A"),c("D","C","C","D","D","J")))
colnames(y) <- c("id","e1","e2")
index_df = y%>% select(e1,e2)
colnames(index_df)<-c('rows','cols')
y$l<-x[as.matrix(index_df)]
Ошибка в x [as.matrix (index_df)]: нижний индекс вне границ