类似于excel vlookup

时间:2011-04-04 13:46:47

标签: r lookup

您好
我有一个10年,5分钟的粉尘浓度分辨率数据集 我有一个15年的数据集,其中包含了天气分类的日期分辨率 我如何组合这两个数据集,它们的长度或分辨率不同 这是一个数据样本

> head(synoptic)
        date synoptic
1 01/01/1995        8    
2 02/01/1995        7    
3 03/01/1995        7    
4 04/01/1995       20    
5 05/01/1995        1   
6 06/01/1995        1       
>    
head(beit.shemesh)
  X........................ StWd  SHT PRE  GSR RH Temp  WD  WS PM10  CO   O3    
1                        NA   64 19.8   0 -2.9 37 15.2  61 2.2  241 0.9 40.6    
2                        NA   37 20.1   0  1.1 38 15.2 344 2.1  241 0.9 40.3    
3                        NA   36 20.2   0  0.7 39 15.1  32 1.9  241 0.9 39.4    
4                        NA   52 20.1   0  0.9 40 14.9  20 2.1  241 0.9 38.7    
5                        NA   42 19.0   0  0.9 40 14.6  11 2.0  241 0.9 38.7    
6                        NA   75 19.9   0  0.2 40 14.5 341 1.3  241 0.9 39.1    
  No2 Nox  No SO2                       date    
1 1.4 2.9 1.5 1.6  31/12/2000 24:00             
2 1.7 3.1 1.4 0.9  01/01/2001 00:05             
3 2.1 3.5 1.4 1.2  01/01/2001 00:10             
4 2.7 4.2 1.5 1.3  01/01/2001 00:15             
5 2.3 3.8 1.5 1.4  01/01/2001 00:20             
6 2.8 4.3 1.5 1.3  01/01/2001 00:25 

任何想法

1 个答案:

答案 0 :(得分:7)

制作一个额外的列来计算日期,然后合并。为此,您必须在每个具有相同名称的数据帧中生成变量,因此您首先需要重命名。还要确保您使用的合并列在两个数据框中具有相同的类型:

beit.shemesh$datetime <- beit.shemesh$date
beit.shemesh$date <- as.Date(beith.shemesh$datetime,format="%d/%m/%Y")
synoptic$date <- as.Date(synoptic$date,format="%d/%m/%Y")
merge(synoptic, beit.shemesh,by="date",all.y=TRUE)

使用all.y=TRUE可以保持beit.shemesh数据集的完整性。如果您还希望在摘要中为所有不匹配的行设置空行,则可以使用all=TRUE代替。