我正在尝试根据DATE和UNIQUEID列对我的df(YearlyDataTMEANPre)中出现两次的行进行子集化。这就是我的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
请注意,每个站的每个DATE都有一个TMAX和TMIN值(ID或UNIQUEID)。我试图确保我只获得每个日期都有TMAX和TMIN的行。例如,可能有一天,电台仅记录TMAX而不记录TMIN。我创建了一个数字UNIQUEID来帮助解决这个问题。
我尝试过的代码行是,
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行在输出中消失。
谢谢!
答案 0 :(得分:1)
您可以使用duplicated
功能获得所需内容:
YearlyDataTMEANPre[duplicated(YearlyDataTMEANPre[,c('UNIQUEID', 'DATE')]),]
答案 1 :(得分:0)
我实际上是用子集和表来计算出来的。奇迹确实发生了。
subset(YearlyDataTMEANPre, table(YearlyDataTMEANPre$UNIQUEID, YearlyDataTMEANPre$DATE) == 2)