在第一个数据框中是与相应网格单元格匹配的站点名称。这些网格单元具有唯一的列号和行号。这是第一个数据帧的示例:
Site <- as.data.frame(c("Site.A","Site.B","Site.C"))
Row <- as.data.frame(c(1,2,3))
Column <- as.data.frame(c(5,4,3))
df1 <- cbind(Site,Row, Column)
colnames(df1) <- c("Site","Row","Column")
在单独的数据框中,我从所有可能的网格单元中获得单独的信息。一个例子:
eg1 <- rbind(c(1,2,3,4,5),c(5,4,3,2,1))
eg2 <- as.data.frame(matrix(sample(0:50, 15*10, replace=TRUE), ncol=5))
df2 <- rbind(eg1,eg2)
rownames(df2)[1:2] <- c("Row","Column")
我想要做的是过滤df2中的列,使它们只有df1中包含列和行的网格单元格。然后,我需要将每个站点名称与其对应的网格单元格匹配。我需要的一个示例输出。
Output <- df2[,1:3]
colnames(Output) <- c("Site.A","Site.B","Site.C")
答案 0 :(得分:2)
一种解决方案如下:
df2[, (df2['Row', ] %in% df1$Row) & (df2['Column', ] %in% df1$Column)]
输出头如下:
V1 V2 V3
Row 1 2 3
Column 5 4 3
3 49 29 34
4 45 42 18
5 9 15 45
6 34 35 19