我看了所有的论坛,没有找到我要找的东西。
让我们以包含年份的数据库为例:
dplyr::storms
name year month day hour lat long status category wind pressure tropicalstorm_force_… hurricane_force…
<chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <chr> <ord> <int> <int> <int> <int>
1 Amy 1975 6 27 0 27.5 -79 tropical depression -1 25 1013 NA NA
2 Amy 1975 6 27 6 28.5 -79 tropical depression -1 25 1013 NA NA
3 Amy 1975 6 27 12 29.5 -79 tropical depression -1 25 1013 NA NA
4 Amy 1975 6 27 18 30.5 -79 tropical depression -1 25 1013 NA NA
5 Amy 1975 6 28 0 31.5 -78.8 tropical depression -1 25 1012 NA NA
6 Amy 1975 6 28 6 32.4 -78.7 tropical depression -1 25 1012 NA NA
7 Amy 1975 6 28 12 33.3 -78 tropical depression -1 25 1011 NA NA
8 Amy 1975 6 28 18 34 -77 tropical depression -1 30 1006 NA NA
9 Amy 1975 6 29 0 34.4 -75.8 tropical storm 0 35 1004 NA NA
10 Amy 1975 6 29 6 34 -74.8 tropical storm 0 40 1002 NA NA
# … with 11,849 more rows
我想使用“year”列作为操作的键进行左连接,但格式为“year+1”,以便为每行提供下一年的信息
所以基本上
Joint= storms %>% left_join(storms, by=c("name",year+1="year"))
有没有简单的方法来实现它,或者我必须在进行left_join之前不可避免地创建year+1列?
谢谢
1条答案
按热度按时间8zzbczxx1#
用一个最小的例子更容易说明这一点,所以我们将使用R附带的
BOD
。在当前版本的dplyr中,您必须创建一个新列,但这可以通过流水线中的sqldf来完成,如果您不希望出现时间2,请省略以-结尾的行。
我们也可以使用
match
或者如果你不想要时间2