使用一个数据帧作为掩码从R中的另一个数据帧中提取数据

时间:2014-07-07 18:52:27

标签: r dataframe

我是R的新手,我正在努力解决数据形成问题。我试图通过使用单独的数据框作为我选择的标准从数据框中提取一组值。

例如,这是我的原始数据:

Raw Data:

1 A  B  C  D  E  F
2 25 52 33 92 83 14
3 23 31 13 13 53 34
4 13 53 23 89 35 93
5 89 90 91 91 90 89

我尝试使用与以下内容相同的数据框来过滤"过滤"那个数据:

Data Frame "mask":

1 08 09 10 08 09 10
2  1  2  3  4  1  2
3  1  2  3  4  1  2
4  2  3  4  1  2  3
5  2  3  4  1  2  3

对于这个例子,我想从原始数据中的值形成一个向量,该数据对应于数据框中的对应值" mask"等于1并且当掩码中的第一行等于8.在这种情况下,结果将是:

res = c(25, 23, 89, 91)

正如我所说的,我对R来说相对较新,我发现最简单的问题往往是最难找到的答案,因为大多数人都不必问他们。所以希望如此这是一个简单的问题。 =)

如果在其他地方已经讨论过,那么链接会非常有用。否则,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果RDatmask是数据集

 RDat[rep(colnames(mask)=="08",each=nrow(mask)) & (mask==1)]
 #[1] 25 23 89 91

更新

这会更紧凑

RDat[colnames(mask)[col(mask)]=="08" & mask==1]
#[1] 25 23 89 91