根据 R 中列之间的差异使两行相等

Make two rows equivalent based on differences between columns in R

我有两个大小相等的数据帧:

df_1=data.frame(UA=c(1, 2, 3),plot1=c(100,100,100),plot2=c(100,0,0),plot3=c(100,100,0))

df_2=data.frame(UA=c(1, 2, 3),plot1=c(100,100,100),plot2=c(100,100,0),plot3=c(100,0,0))

我想要做的是 select 只有 df_1df_2 以及 exact[=20= 中都包含 100 的单元格] 放置(即 UA 1 示例和 plot1 仅适用于 UA 2 和 3)并保存在列表中(因为它们可能具有不同的大小)。

我该如何继续?

您可以对每个数据框中 100 的元素位置使用相交:

intersect(which(df_1 == 100), which(df_2 == 100))

编辑:对于行和列位置:

library(prodlim)

# Indices for data frame 1 and 2 for values = 100
indices_1 <- which(df_1 == 100, arr.ind = TRUE)
indices_2 <- which(df_2 == 100, arr.ind = TRUE)

# Rows where indices are matched between the two data frame indices
indices_rows <- na.omit(row.match(as.data.frame(indices_1), as.data.frame(indices_2)))

# Row-column indices where both data frames have values of 100
indices_2[indices_rows,]