在 R 中复制 Excel 函数 INDEX



我正在尝试在 R 中复制 Excel 的"INDEX"函数,不幸的是我无法调整此板上提供的任何解决方案来解决我的问题。 我的第一个表包含列索引和行索引,这些索引基于从第二个表中选择值:

library(data.table)
table1<-data.table(data.frame(RowIndex = c(1,2,4,3), ColumnIndex = c(2,3,1,1)))
table2<-data.table(data.frame(columnAD = c("a","b","c","d"), columnEH = c("e","f","g","h"), columnIL = c("i","j","k","l")))
table1$MatchedData<-c("e","j","d","c")

我在Excel中所需的输出被添加为"匹配数据"。到目前为止,我已经尝试了与匹配或ifelse的不同组合,但没有一个成功。 提前感谢您的帮助

一种方法是使用by=对每一行table1table2进行子集化:

library(data.table)
table1[, Result := table2[RowIndex, ColumnIndex, with = FALSE],
by = seq_len(nrow(table1))][]
RowIndex ColumnIndex Result
1:        1           2      e
2:        2           3      j
3:        4           1      d
4:        3           1      c

请注意,[]只是在分配后通过引用打印table1:=.

使用基本 R 矩阵数字索引:

as.matrix(table2)[as.matrix(table1)]

最新更新