如何从数据框中提取单元格值到R中的for循环的新对象?



我有两个数据框架。一个是dataA,包含XYZ列。另一个是dataB,它是一个大矩阵(135x240),其中一些单元格中有概率,但大多数单元格包含0。我需要从dataB中提取单元格值,并从中创建一个新对象。要提取的单元格索引为dataA,X为列,Y为行,但仅限于Z == 1121

到目前为止,我已经尝试过这个,它的一些变化,但没有工作。我将非常感谢所有的帮助。

new_object <- dataB %>% 
for (val in dataA$Z=="1121") {mutate (prob = select(dataB[dataA$Y, dataA$X])}

Base R可能是更好的选择:

z_index <- dataA$Z == "1121"
subset_function <- function(x, y, dat) dat[y, x]
X <- dataA$X[z_index]
Y <- dataA$Y[z_index]
new_object <- mapply(FUN = subset_function, x = X, y = Y, MoreArgs = list(dat = dataB))

最新更新