【问题标题】:similar to excel vlookup类似于 excel vlookup
【发布时间】:2011-04-04 13:46:47
【问题描述】:


我有一个 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 

任何想法的

【问题讨论】:

  • Joris 已经回答了你的问题,所以我通过回答删除了,但以下关于如何帮助我们帮助你的建议值得坚持。您的问题尚不清楚:1.您希望将它们组合到的两个数据集之间有哪些共同信息 2.您希望最终输出看起来像什么 3.如何创建人们可以测试的复制数据集(请为此使用 dput)

标签: r lookup


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2021-02-23
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    相关资源
    最近更新 更多