R-基于2列发生两次的子集行



我试图在我的DF(年度DatatMeanpre(中两次出现的行依赖于日期和唯一ID列。这是我的DF的样子。

            ID     DATE TYPE VALUE COL2 NA. NA.1 NA.2 UNIQUEID
6  ASN00015643 20170101 TMAX 81.32             a <NA>      330
7  ASN00015643 20170101 TMIN 71.24             a <NA>      330
9  ASN00085296 20170101 TMAX 71.06             a <NA>      733
10 ASN00085296 20170101 TMIN 54.86             a <NA>      733
13 ASN00085280 20170101 TMIN 60.08             a <NA>      730
15 ASN00040209 20170101 TMAX 84.74             a <NA>      492
16 ASN00040209 20170101 TMIN 77.00             a <NA>      492
40 CA005030984 20170101 TMAX 12.38             C <NA>     1623
41 CA005030984 20170101 TMIN -2.56             C <NA>     1623

请注意,每个站点的每个日期都有一个TMAX和TMIN值(ID或唯一的(。我试图确保我只能在每个日期都有TMAX和TMIN的位置。例如,可能有一天,一个站只记录了TMAX而不是TMIN。我创建了一个数字唯一的帮助来帮助这一点。

我尝试过的代码行是

YearlyDataTMEAN <- subset(YearlyDataTMEANPre, UNIQUEID & DATE == 2)

但是,这似乎使我零行。我一定缺少明显的东西,但我是R的新手。我希望输出看起来像

                ID     DATE TYPE VALUE COL2 NA. NA.1 NA.2 UNIQUEID
6  ASN00015643 20170101 TMAX 81.32             a <NA>      330
7  ASN00015643 20170101 TMIN 71.24             a <NA>      330
9  ASN00085296 20170101 TMAX 71.06             a <NA>      733
10 ASN00085296 20170101 TMIN 54.86             a <NA>      733
15 ASN00040209 20170101 TMAX 84.74             a <NA>      492
16 ASN00040209 20170101 TMIN 77.00             a <NA>      492
40 CA005030984 20170101 TMAX 12.38             C <NA>     1623
41 CA005030984 20170101 TMIN -2.56             C <NA>     1623

请注意,第一个表中的第13行在输出中消失了。

谢谢!

您可以使用duplicated功能并获取想要的东西:

YearlyDataTMEANPre[duplicated(YearlyDataTMEANPre[,c('UNIQUEID', 'DATE')]),]

我实际上使用子集和表弄清楚了。奇迹确实发生了。

subset(YearlyDataTMEANPre, table(YearlyDataTMEANPre$UNIQUEID, YearlyDataTMEANPre$DATE) == 2)

最新更新